MATLAB - Как сохранить анимированную функцию в подарок - PullRequest
0 голосов
/ 02 декабря 2018

Я использую функцию «анимированная линия» для создания анимированной функции.Я хотел бы понять, как я могу сохранить свою функцию в формате GIF, чтобы использовать ее в другом месте, например, в PowerPoint.Я пытаюсь использовать функцию gif , но не могу.Кто-нибудь может подсказать, как этого добиться или как правильно использовать функцию GIF?Вот простой код:

    numpoints = 100000; 
x = linspace(0,4*pi,numpoints); 
y = square(x); 
y2 = 3 +square(x+1);
figure 
h = animatedline('Color','b','LineWidth',2); 
h2 = animatedline('Color','r','LineWidth',2);
grid on;
axis([0,12,-3,+6]) 
for k = 1:numpoints 
  addpoints(h,x(k),y(k)) 
  addpoints(h2,x(k),y2(k)) 
  drawnow  


end

1 Ответ

0 голосов
/ 03 декабря 2018

Используйте функцию imwrite для создания GIF.

numpoints = 500; 
x = linspace(0,4*pi,numpoints); 
y = square(x); 
y2 = 3 +square(x+1);
f = figure 
h = animatedline('Color','b','LineWidth',2); 
h2 = animatedline('Color','r','LineWidth',2);
grid on;
axis([0,12,-3,+6]) 
for k = 1:numpoints 
  addpoints(h,x(k),y(k)) 
  addpoints(h2,x(k),y2(k)) 
  drawnow  

  % Capture the plot as an image 
  frame = getframe(f); 
  im = frame2im(frame); 
  [imind,cm] = rgb2ind(im,256); 
  % Write to the GIF File 
  if k == 1 
      imwrite(imind,cm,'test.gif','gif', 'Loopcount',inf); 
  else 
      imwrite(imind,cm,'test.gif','gif','WriteMode','append'); 
  end 
end

GIF сохраняется в файле с именем test.gif.

...