Еще один способ сделать это, если вы просто хотите визуализировать его без сохранения анимации, - это использовать refreshdata
вместо plot
для последующих графиков. Вам все равно нужно будет позвонить drawnow
, чтобы обновить его на экране.
либо используйте
set(fig_handle,'XData',new_xdata_array)
set(fig_handle,'YData',new_ydata_array)
refreshdata
drawnow
или используйте
set(fig_handle,'XDataSource',xdata_array)
set(fig_handle,'YDataSource',ydata_array)
%call this whenever xdata_array and ydata_array are assigned new values to see it updated in the plot
refreshdata
drawnow
для вашего примера это может выглядеть так:
a=[1:100];
figure;
h=plot(1,a(1));
for i=2:100
set(h,'XData',[1:i])
set(h,'YData',a(1:i))
refreshdata
drawnow
end
Это не так уж и полезно для простых линейных графиков (для которых plot(); drawnow;
проще и быстрее), но когда вам нужно создать более сложные фигуры, включающие несколько типов графиков, это может быть полезно.