2015-06-22 3 views
1

У меня есть несколько 2D-графиков в Matlab (они представляют собой некоторую волну, движущуюся по пространству). Каждый график представляет собой волну в некоторый момент времени t. Я хочу оживить эти графики (т. Е. Показать первый график на долю секунды, затем показать следующий, следующий и т. Д. Я хочу вернуться к началу, как только он достигнет конечного времени), чтобы показать временной эволюции системы. серфинг и сетка действительно не делают то, что я хочу, так как слишком сложно увидеть изменения с количеством шагов времени, которые у меня есть. Есть ли способ сделать это в Matlab?Анимация через несколько 2D-графиков Matlab

+1

вы можете предоставить небольшой рабочий пример, который мы можем играть с? благодаря –

ответ

2

Я предполагаю, что «2d-line» означает 2d-plot. Это делается с помощью функции plot, поэтому нет необходимости в surf или mesh. Извините, когда я ошибся.

Следующий код делает то, что я думаю, что вы просили:

% Generate some propagating wave 
n = 20; 
t = linspace(0,10,100); 
x = cell(1,n); 
for i = 1:n 
    x{i} = (1-abs(i/n-0.4))*sin(t+i*0.2); 
end 

% Create frames 
figure; 
for i = 1:length(x) 
    clf; 
    plot(t,x{i}); 
    ylim([-1,1]); 
    myFrames(i) = getframe; %#ok<SAGROW> 
end 

% Show movie 
figure; 
movie(myFrames,2,2); % frames, repetitions, frames per second 
Смежные вопросы