Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 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');

更多&回答...
poster 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:49


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.