首页 文章

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

提问于
浏览
0

因此,我正在编写一些脚本来计算与相同大小的稀疏矩阵相比,反转完整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

    幸运的是,它在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)
    

相关问题