【问题标题】:How to push results of a for loop into a new array MATLAB如何将 for 循环的结果推送到新数组 MATLAB
【发布时间】:2014-03-16 04:54:31
【问题描述】:

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

N=1000;

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

plot(tFull)

但是当我尝试使用日志空间时,一切都会中断。它不仅存储循环的 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 似乎有点困难。任何帮助是极大的赞赏。谢谢。

【问题讨论】:

    标签: arrays matlab loops


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多