当前位置:首页>开发>正文

如何利用matlab做gif格式的动画 Matlab如何画动态图

2023-07-19 03:57:31 互联网 未知 开发

 如何利用matlab做gif格式的动画 Matlab如何画动态图

如何利用matlab做gif格式的动画

能啊,用这句代码: [filename,pathname] = uiputfile({*.jpg*.gif*.bmp*.tif*.png},图片保存为)

Matlab如何画动态图

No.给你一个示例吧~~~用for循环做的
%动态绘制椭圆
clfaxis([-2,2,-2,2])
axis equal
pause(1)
h=line(NaN,NaN,marker,o,linesty,-,erasemode,none)
t=6*pi*(0:0.02:1)
for n=1:length(t)
set(h,xdata,2*cos(t(1:n)),ydata,sin(t(1:n)))
pause(0.05)%暂停0.05秒
end

No.貌似函数comet,comet3可以实现质点动画
%comet(xdata,ydata,p) p为彗星尾巴长度,可为常数
%平抛运动
vx=40
t=linspace(0,10,1000)
x=vx*t
y=-9.8*t.^2/2
comet(x,y)

No.3最强大的也就是动画制作了,这个有点难,需要用到函数movie

matlab画动态图

原发布者:czbczkMatlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,下面总结几种方法。一.AXIS移动坐标系这种方法是最简单的一种方法,适合于数据已经全部生成的场合,先画图,然后移动坐标轴。实例代码如下:%%%先画好,然后更改坐标系%在命令行中使用Ctrl C结束t=0:0.1:100*pim=sin(t)plot(t,m)x=-2*piaxis([x,x 4*pi,-2,2])gridonwhile1ifx>max(t)breakendx=x 0.1axis([x,x 4*pi,-2,2])%移动坐标系pause(0.1)end二.HoldOn模式此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一帧图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。例如:%%%HoldOn法%此种方法只能点,或者分段划线holdofft=0m=0t1=[00.1]%要构成序列m1=[sin(t1)cos(t1)]p=plot(t,m,*,t1,m1(1,:),-r,t1,m1(2,:),-b,MarkerSize,5)x=-1.5*piaxis([xx 2*pi-1.51.5])gridonfori=1:100holdont=0.1*i%下一个点m=t-floor(t)t1=t1 0.1%下一段线(组)m1=[sin(t1)cos(t1)]p=plot(t,m,*,t1,m1(1,:),-r,t1,m1(2,:),-b,MarkerSize,5)x=x 0.1axis([xx 2*pi-1.51.5])pause(0.01)end三.Plot背景擦除模式这种模式比较适合画动画,效率比较高,刷新闪烁小,适合即时

matlab编程,把25张jpeg(1024x255)的图片做成一张gif动态图

clear
clc
%读图
database_path=uigetdir(cd,素材库位置:)%获取素材库位置
TrainFiles = dir(database_path)
Train_Number = 0
for i = 1:size(TrainFiles,1)
if not(strcmp(TrainFiles(i).name,.)|strcmp(TrainFiles(i).name,..)|strcmp(TrainFiles(i).name,Thumbs.db)) %%处理异常的文件,.是本级目录,..是上一级目录,Thums.db是系统存有图片时的缩略图文件
Train_Number = Train_Number 1 % Number of all images in the training database
end
end
%制作
if Train_Number==0
msgbox(素材库位置为空,读取失败)
else
T=[]
for i = 1 : Train_Number %%把该文件夹里的所有图片都放到了T里啊,每个图片是按列存进了T里
str = strcat(database_path,,TrainFiles(i 2).name)
im = imread(str)
[imind,cm] = rgb2ind(im,256)
if i == 1
imwrite(imind,cm,dly,gif, Loopcount,inf)
else
imwrite(imind,cm,dly,gif,WriteMode,append)
end
end
end

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

楼主所说的“不成功”是什么概念?
是不能生成GIF文件,还是说生成的文件播放有问题?
据我在多个版本实测,生成文件是没问题的,但播放文件时,后面的一些帧会出现混乱。
 
应该是格式兼容性问题:
在最新版的MATLAB 2014a读入生成的文件,然后逐帧显示,图像是对的;但在2008a中读入文件时会出错。
把生成的文件用Ulead GIF Animator 5.05打开,可以查看各帧的图像都是正常的,另存一下就好了。
我想不出更好的解决办法。代码看上去没什么问题,图像的数据其实也都保存下来了,如果说有问题,就是因为MATLAB对多帧GIF格式的支持还不够好。
 
猜测可能与各帧的colormap不同有关,但没有更深入的分析。