m0_61503242 2021-09-09 21:04 采纳率: 55.6%
浏览 45
已结题

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

img


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

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-09-09 21:37
    关注

    每次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
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 创建了问题 9月9日

悬赏问题

  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因