请问用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
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报