2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Анимация 2-х subplot-ов в Matlab-е
Сообщение22.03.2012, 17:08 
Здравствуйте!

У меня не получается создать GIF-файл, содержащего две анимации, одна под другой. Получается, что эти две анимации как бы накладываются друг на друга...
Как следует поменять нижеследующий код, написанный для случая одной анимации в одном окне figure, чтобы решить проблему.

Вот код для одной анимации в одном окне figure (при этом первый кадр уже создан, а остальные добавляются):
Код:
    drawnow,
    f = getframe(gcf);
    [im,map] = rgb2ind(f.cdata,4);
    imwrite(im,map,'animation_test.gif','DelayTime',0,'WriteMode','Append');


Теперь же я хочу сделать по сути то же, но для случая, когда одно окно figure разделено на строки следующим образом:
Код:
...
subplot(2,1,1);
...
subplot(2,1,2);
...


Вот исходный код (на всякий случай):
Код:
clear all
x=0:pi/10:4*pi;      % х-координата
y1=zeros(1,length(x));     % функция для одной анимации
y2=zeros(1,length(x));     % функция для другой анимации

% создание первого пустого кадра
set(figure(1),'Position',[350,200,700,300]),
plot(0,0);   
xlim([0, 4*pi]);
ylim([-1, 1]);
f = getframe;
[im,map] = rgb2ind(f.cdata,4);
imwrite(im,map,'animation_test.gif','DelayTime',0,'Loopcount',0);

% цикл для анимации
for i=1:length(x)
    y1(i)=sin(x(i));
    y2(i)=cos(x(i));
    h=figure(1);
   
    subplot(2,1,1);
    plot(x(i),y1(i),'.');   
    xlim([0, 4*pi]);
    ylim([-1, 1]);
    hold on;
   
    subplot(2,1,2);
    plot(x(i),y2(i),'.');
    xlim([0, 4*pi]);
    ylim([-1, 1]);       
    hold on;
   
    pause(0.1);
   
    drawnow,
    f = getframe(gcf);
    [im,map] = rgb2ind(f.cdata,4);
    imwrite(im,map,'animation_test.gif','DelayTime',0,'WriteMode','Append');
end;

Спасибо за ранее!

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group