【问题标题】:Plot time of two different for loops两个不同 for 循环的绘图时间
【发布时间】:2011-02-15 14:33:05
【问题描述】:

我有两个循环:

for x = 1:100
    tic
    for n=1:x
       #some code
       t(n) = toc
    end

    plot(t)

end

for y = 1:100
    tic
    for n=1:y
       #some code
       t(n) = toc
    end

plot(t)

end

如果我只运行其中一个 for 循环并绘制时间,它就可以完美运行。但如果我同时运行两个循环并坚持从第一到第二系列绘图,我会在图中得到很多线条。

我想要的只是两个图表,代表所绘制函数的两次。

【问题讨论】:

  • 内循环的目的是什么(for n=1:yfor n=1:x)?
  • 在我的代码中,我只是创建了 1 到 100 的随机矩阵。然后我遍历每个矩阵(1x1、2x2 等并做一些代码)
  • 您的意思是获取 1+2+...+100 个个案的 t 值吗?或者您是否为每个 x(或 y)值计算一个 t 值?

标签: matlab


【解决方案1】:

我会这样做:

t1 = zeros(100*100);
i = 1;
for x = 1:100
    tic
    for n=1:x
       #some code
       t1(i) = toc
       i = i + 1;
    end
end


t2 = zeros(100*100);
i = 1;
for y = 1:100
    tic
    for n=1:y
       #some code
       t2(i) = toc
       i = i + 1;
    end
end

figure();
plot(t1);
hold on;
plot(t2)

【讨论】:

  • hold allhold on 更好,因为它不会打扰 colororder
猜你喜欢
  • 2016-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-06
  • 2023-03-04
相关资源
最近更新 更多