Un altro modo per eseguire questa operazione se si desidera visualizzarlo senza salvare l'animazione, è utilizzare refreshdata
anziché plot
per i grafici successivi. Dovrai comunque chiamare lo drawnow
per aggiornarlo sullo schermo.
usare sia
set(fig_handle,'XData',new_xdata_array)
set(fig_handle,'YData',new_ydata_array)
refreshdata
drawnow
o utilizzare
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
per il vostro esempio, questo potrebbe essere simile:
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
Non è tutto ciò che utile per semplici grafici lineari (per il quale plot(); drawnow;
è più semplice e veloce), ma quando è necessario creare figure più complicate che coinvolgono multi tipi di trama, questo può essere utile.
fonte
2010-05-10 03:27:17
Mentre drawNow è la risposta corretta, penso che si può anche aggiungere una dichiarazione di pausa (EPS) nel codice al posto di drawNow. Quando MATLAB effettua la pausa, anche se solo per questa nano-frazione di una porzione temporale, fa anche un aggiornamento sulla figura. –