登录论坛

查看完整版本 : MATLAB中的矩阵数组


poster
2019-12-10, 16:49
我正在寻找一种在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');

更多&回答... (https://stackoverflow.com/questions/466972)