Здравствуйте!
У меня не получается создать 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;
Спасибо за ранее!