【发布时间】:2019-11-08 10:02:46
【问题描述】:
我正在尝试存储一个大小为4 x 10^6 的矩阵,但是在运行它时Matlab 无法做到这一点,就像它无法存储该大小的矩阵一样,或者我应该使用另一种方式来存储。代码如下:
matrix = [];
for j = 1 : 10^6
x = randn(4,1);
matrix = [matrix x];
end
问题它仍然运行很长时间并且无法完成,但是当我删除行 matrix = [matrix x]; 时,它会很快完成循环。所以我需要在文件中保存matrix,以便我可以在需要的任何地方使用它。
【问题讨论】:
-
您的循环与
matrix = randn(4,1e6)的作用相同。因为您没有为矩阵分配任何内存,所以循环需要很多时间,请参阅preallocation。至于矩阵的最大大小,这取决于你有多少可用的 RAM。