2013-01-18 58 views
1

Я попытался сделать график внутри цикла, и он печатает только последний график.MATLAB: график в цикле

Как я могу это исправить?

Я попытался использовать hold on и drawnow после определения сюжета, но это не сработало.

Это мой код:

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

ответ

2

hold on должен работать. Попробуйте следующее:

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

Придерживаясь «фигуры», всегда работал на меня.

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

Поскольку вы уже умирали оси обращаться к plot, вам нужно всего лишь поставить что-то вроде pause(0.1) внутри цикла, и ваш первоначальный источник будет работать.

1

вы также можете использовать figure(t), чтобы иметь 5 разных цифр.

0

Если функция Game(World , Generations, speed) является детерминированной функцией, она дает тот же результат для каждого t. Поэтому каждая команда plot имеет ровно тот же вывод, и вы не можете отличить первый от последнего графика.

Попробуйте plot случайную серию на каждой итерации (как в ответ на shoelzer) и посмотрите, видите ли вы все 5 сюжетов.

Кроме того, вы можете использовать hold all вместо hold on: таким образом, каждый участок получит другой цвет из цветовой палитры.

Смежные вопросы