我正在运行一个模拟,其中我生成巨大的 2d 稀疏矩阵,因此我使用 FIND 函数只存储非零值及其索引。
现在,对于 for 循环的每次迭代,我都会生成这样的矩阵,并且因为它们的长度都不同,所以我使用单元数组来存储这些配置。但是对于大型模拟,即使单元格数组的压缩格式也会超出其内存限制,因此我想在运行代码时编写这些单元格数组,即每次迭代都将一个新元素附加到现有的 mat 文件中。
例如
for n=1:10
A=rand(5);
[i,j,vals]=find(A);
data={[i,j,vals]};
save('data','data','-append');
end
在这里,我的最终目标是拥有一个 mat 文件,其中“数据”中的元素数为 10。但由于内存问题,我无法将其保存在 for 循环之外,我想生成数据 {n} 并以列增长方式附加它. 最终给了我数据{10}。
我尝试使用 MATFILE 但它给了我一个错误,它不能与 {} 一起使用,因此不能与单元格数组一起使用。
谢谢你,尼丁