请问用matlab怎么生成gif文件?

img


请问用matlab怎么生成gif文件?需要改代码吗?还是直接在某个地方点保存的时候可以导出为gif文件呢?

每次run的时候,可以用getframe来实现

omega = 2*pi;
t = linspace(0,4,1001);
x = 2 + cos(omega*t);
y = 2 + sin(omega*t);
dt = min(diff(t));
t0 = -t;
z = -t;
% 保存的文件名
filename = 'myfig.gif';
figure(1)
for i = 1:1:120
    t0 = t0 - 5*dt;
    x = 2 + cos(omega*t0);
    y = 2 + sin(omega*t0);
    p = [y(end),z(end),x(end)];
    p1 = [y(end),z(end),0];
    p2 = [0,z(end),x(end)];
    plot3(y, z, x,  'g-', 'linewidth',2);
    hold on
    fill3([0,3,3,0],[-4,-4,-4,-4],[0,0,3,3],'c','facealpha',0.2,'edgecolor','k')
    plot3(y, z, zeros(size(x)),  'b-', 'linewidth',2);
    plot3(zeros(size(x)),z, x,  'r-', 'linewidth',2);
    plot3([p1(1),p(1)],[p1(2),p(2)],[p1(3),p(3)],'bo--','markersize',10,'markerfacecolor','b', 'linewidth',2)
    plot3([p2(1),p(1)],[p2(2),p(2)],[p2(3),p(3)], 'ro--','markersize',10,'markerfacecolor','r', 'linewidth',2)
    axis([0 3 -4 0 0 3])
    view([50.4,20.4])
    xlabel('x'), ylabel('y'),zlabel('z')
    grid on
    axis equal
   frame = getframe(gcf);
   im = frame2im(frame);
   [imind,cm] = rgb2ind(im,256);
   if i == 1
       imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.05);
   else
       imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.05);
   end
    pause(0.0001)
    hold off
end