Eine andere Möglichkeit dies zu tun, wenn Sie es nur visualisieren möchten, ohne die Animation zu speichern, ist die Verwendung von refreshdata
anstelle von plot
für nachfolgende Plots. Sie müssen weiterhin drawnow
aufrufen, damit es auf dem Bildschirm aktualisiert wird.
entweder verwenden
set(fig_handle,'XData',new_xdata_array)
set(fig_handle,'YData',new_ydata_array)
refreshdata
drawnow
oder
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
für Ihr Beispiel verwenden, könnte dies wie folgt aussehen:
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
Es ist nicht alles, was nützlich für einfache Liniendiagramme (für die plot(); drawnow;
ist einfacher und schneller), aber wenn Sie kompliziertere Figuren mit mehreren erstellen müssen Plot-Plot-Typen kann dies nützlich sein.
Während drawNow die richtige Antwort ist, ich denke, man kann auch eine Pause (eps) Anweisung im Code an die Stelle der drawNow hinzuzufügen. Wenn Matlab die Pause macht, wenn auch nur für diesen Nano-Anteil einer Zeitscheibe, macht es auch eine Aktualisierung der Figur. –