MATLAB:循环绘图

时间:2013-01-18 20:29:22

标签: matlab

我试图在一个循环中进行绘图,它只打印最后一个绘图。

我该如何解决?

我尝试在绘图定义后使用hold ondrawnow,但它不起作用。

这是我的代码:

for t=1:5
  alive = Game(World , Generations, speed);
  plot(hplot2,1:Generations,alive);
end

5 个答案:

答案 0 :(得分:2)

hold on应该有效。试试这个:

figure
hplot2=gca;
hold on
for t=1:5
    alive = rand(1,Generations);
    plot(hplot2,1:Generations,alive);
end

答案 1 :(得分:2)

坚持“数字”一直对我有用。

for t=1:5
    alive = Game(World , Generations, speed);
    figure;
    plot(hplot2,1:Generations,alive);
end

答案 2 :(得分:1)

由于您已经将轴手柄传递给plot,因此您只需在循环中添加pause(0.1)之类的内容,原始来源就可以使用。

答案 3 :(得分:1)

您还可以使用figure(t)来获得5个不同的数据。

答案 4 :(得分:0)

如果函数Game(World , Generations, speed)是确定性函数 - 它为每个t提供相同的输出。因此,每个plot命令都完全相同的输出,您无法区分第一个和最后一个图。

在每次迭代时尝试plot一个随机序列(如回答shoelzer),看看你是否看到了所有5个图。

此外,您可能希望使用hold all而不是hold on:这样每个地图都会获得与彩色地图不同的颜色。