Innym sposobem, aby to zrobić, jeśli chcesz tylko wizualizować bez zapisywania animacji, jest użycie refreshdata
zamiast plot
dla kolejnych wykresów. Nadal musisz zadzwonić pod numer drawnow
, aby zaktualizować go na ekranie.
użyć
set(fig_handle,'XData',new_xdata_array)
set(fig_handle,'YData',new_ydata_array)
refreshdata
drawnow
lub użyj
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
dla przykładu, może to wyglądać tak:
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
To nie wszystko, co przydatne dla prostych wykresów liniowych (dla których plot(); drawnow;
jest prostszy i szybszy), ale gdy trzeba utworzyć bardziej skomplikowane liczby obejmujące wiele typy działek, może to być przydatne.
Podczas drawnow jest poprawna odpowiedź, myślę, że można również dodać pauzę (EPS) oświadczenie w kodzie w miejscu drawnow. Kiedy matlab wykonuje pauzę, nawet jeśli tylko dla tej nano-frakcji wycinka czasu, to również odświeża figurę. –