如何将for循环的结果推送到新的数组MATLAB中

时间:2014-03-16 04:54:32

标签: arrays matlab loops

因此,我正在编写一些脚本来计算与相同大小的稀疏矩阵相比,反转完整NxN矩阵所需的时间,然后绘制时间。我可以使用一个简单的向量轻松地做到这一点,如:

N=1000;

for i=1:10:N;
Afull=randi(9,i);
tic
inv(Afull);
tFull(i)=toc;
end

plot(tFull)

但是当我尝试使用logspace时,一切都会中断。它不是仅存储循环的10个结果(我在logspace函数中选择),而是将其他〜890个数字存储为零,这实际上搞乱了我的情节。我认为我的错误是循环索引。

N = round(logspace(2,3,10));

for i=N
Afull=randi(9,i);
tic
inv(Afull);
tFull(i)=toc;
end

plot(tFull)

我的问题是:有没有办法修复我的循环索引,或者有办法简单地将每次迭代的结果推送到一个新的数组中。我可以很容易地在JS中做到这一点,但MATLAB似乎有点困难。任何帮助是极大的赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

幸运的是,它在Matlab中也很简单:

N = round(logspace(2,3,10));

for i=1:length(N);
Afull=randi(9,N(i));
tic
inv(Afull);
tFull(i)=toc;
end

plot(tFull)