matlab 旋转已做好的三维图,生成gif动画

以下代码,总是不成功。高手给看看哪里出错了。谢谢。clearallclcclfsurf(peaks)axisvis3dshadinginterpfilename='Com... 以下代码,总是不成功。高手给看看哪里出错了。谢谢。

clear all
clc
clf
surf(peaks)
axis vis3d
shading interp
filename = 'Compare data to MC fits1.gif';

for i=1:36
camorbit(10,0,'camera')
drawnow
M=getframe;
nn=frame2im(M);
[imind,cm]=rgb2ind(nn,256);

if i == 1;
imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
else
imwrite(imind,cm,filename,'gif','WriteMode','append');
end
end
展开
 我来答
tianxiawulang
推荐于2016-05-31 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2551万
展开全部

楼主所说的“不成功”是什么概念?

是不能生成GIF文件,还是说生成的文件播放有问题?

据我在多个版本实测,生成文件是没问题的,但播放文件时,后面的一些帧会出现混乱。

 

应该是格式兼容性问题:

  • 在最新版的MATLAB 2014a读入生成的文件,然后逐帧显示,图像是对的;但在2008a中读入文件时会出错。

  • 把生成的文件用Ulead GIF Animator 5.05打开,可以查看各帧的图像都是正常的,另存一下就好了。

我想不出更好的解决办法。代码看上去没什么问题,图像的数据其实也都保存下来了,如果说有问题,就是因为MATLAB对多帧GIF格式的支持还不够好。

 

猜测可能与各帧的colormap不同有关,但没有更深入的分析。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式