2010-05-10 16 views

Odpowiedz

20

Zastosowanie DRAWNOW

a = [1:100]; 
for i=1:100, 
plot([1:i], a(1:i)); 
drawnow 
end 

Alternatywnie, może chcesz przyjrzeć się ANYMATE z wymiany plików.

+2

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ę. –

5

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.

Powiązane problemy