![]() |
MATLAB中的矩阵数组
我正在寻找一种在MATLAB中的数组中存储大量可变矩阵的方法。
有什么方法可以做到这一点? 例: for i: 1:unknown myArray(i) = zeros(500,800); end 如果未知的数组长度不同,我可以根据需要添加其他信息进行修改。 更新:性能是我试图做到这一点的主要原因。在将数据作为单个矩阵进行抓取,实时显示并随后处理下一组数据之前,我已经有了它。 我按照Rocco的建议使用多维数组进行了尝试,但是我的数据非常大,以至于我的内存不足了,我可能不得不针对我的情况寻找另一种选择。当我尝试其他建议时会更新。 更新2:谢谢大家的建议,但是我应该事先指定,精度和速度都是不可或缺的因素,在尝试3-d数组并重新评估该方法之前,我可能不得不考虑回到原来的方法。用于导入数据。 回答: 如果所有矩阵的大小都相同(即500x800),则可以制作3D数组: nUnknown; % The number of unknown arrays myArray = zeros(500,800,nUnknown); 要访问一个数组,您将使用以下语法: subMatrix = myArray(:,:,3); % Gets the third matrix 您可以通过以下两种方式向myArray添加更多矩阵: myArray = cat(3,myArray,zeros(500,800)); % OR myArray(:,:,nUnknown+1) = zeros(500,800); 如果每个矩阵的大小都不相同,则需要使用Hosam建议的单元格数组。 编辑:我错过了有关内存不足的部分。我猜你的nUnknown很大。您可能必须切换矩阵的数据类型(如果使用整数,则要转换为单个甚至是uintXX类型)。您可以在对零的调用中执行此操作: myArray = zeros(500,800,nUnknown,'single'); [url=https://stackoverflow.com/questions/466972]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 23:25。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.