MATLAB 动态图GIF

MATLAB 动态图GIF

  • 前言
  • 一、创建动态图(动态曲线、动态曲面)
    • [1. 创建动画曲线(MATLAB animatedline函数)](#1. 创建动画曲线(MATLAB animatedline函数))
    • [2. 创建动画曲面](#2. 创建动画曲面)
  • [二. 保存动态图](#二. 保存动态图)
  • 三、完整示例
    • [1. 动态曲线( y = s i n ( x ) y=sin(x) y=sin(x))](#1. 动态曲线( y = s i n ( x ) y=sin(x) y=sin(x)))
    • [2. 动态曲面](#2. 动态曲面)
  • 总结

前言

保存为动态图原理:把一系列图片,按照一定时间间隔顺序保存,顺序播放即可。


一、创建动态图(动态曲线、动态曲面)

1. 创建动画曲线(MATLAB animatedline函数)

animatedline:参数设置方法与plot相当,所不同的是可以动态删除添加数据点。

示例:以 y = s i n ( x ) y=sin(x) y=sin(x)为例

matlab 复制代码
x = 0:0.1:2*pi;
y = sin(x);
axis([min(x) max(x) min(y) max(y)]);
line = animatedline('Color','r','LineWidth',3);
for i=1:length(x)
    addpoints(line,x(i),y(i));
    pause(0.1);
    drawnow;
end

其中

  1. line 是animatedline函数返回的一个结构体(和C语言意思差不多)变量,包含曲线各种属性,后续也可以修改。
  2. axis 主要是用来对坐标轴进行一定的缩放操作,其操作命令主要如下:
    axis( [xmin xmax ymin ymax zmin zmax] ) %设置 x,y,z轴的限制范围。
  3. addpoints(line,x(i),y(i)) 向已有曲线添加点第i个点 ( x ( i ) , y ( i ) ) (x(i),y(i)) (x(i),y(i)), 并且drawnow配和使用,表示画出新曲线。
  4. 为限制过快更新,以至于看不到效果,使用**pause(0.1)**暂停程序0.1s。

2. 创建动画曲面

二. 保存动态图

原理:按照 一定时间间隔来 顺序保存 当前MATLAB figure窗口图像。

由于figure窗口图片在变化,我们保存的就是一系列变化的图片序列,再按顺序播放形成动态图。

自编MATLAB 动图存储函数: MakeGif(filename,index)

matlab 复制代码
function MakeGif(filename,index)  
    f = getframe(gcf);  
    imind = frame2im(f);  
    [imind,cm] = rgb2ind(imind,256);  
    if index==1  
        imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.001);
    else  
        imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.001);
    end  
end  
  1. filename 为保存图像文件名,注意文件名需加单引号。
  2. index 表示第index张图的索引。
  3. 'LoopCount '选项:
    指定 0,动画将播放一次。
    指定 0,指定 1,动画将播放两次,以此类推。
    指定Inf值可使动画连续循环。

三、完整示例

1. 动态曲线( y = s i n ( x ) y=sin(x) y=sin(x))

matlab 复制代码
x = 0:0.1:2*pi;
y = sin(x);
axis([min(x) max(x) min(y) max(y)]);
line = animatedline('Color','r','LineWidth',3);
for i=1:length(x)
    addpoints(line,x(i),y(i));
    MakeGif('my.Gif',i);
    pause(0.1);
    drawnow;
end

2. 动态曲面


总结

保存为动态图原理:把一系列图片,按照一定时间间隔顺序保存,顺序播放

相关推荐
民乐团扒谱机9 小时前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树
Evand J10 小时前
TDOA(到达时间差)的GDOP和CRLB计算的MATLAB例程,论文复现,附参考文献。GDOP:几何精度因子&CRLB:克拉美罗下界
开发语言·matlab·tdoa·crlb·gdop
机器学习之心HML13 小时前
MATLAB豆渣发酵工艺优化 - 基于响应面法结合遗传算法
matlab
aini_lovee1 天前
MATLAB基于小波技术的图像融合实现
开发语言·人工智能·matlab
3GPP仿真实验室1 天前
【Matlab源码】6G候选波形:OFDM-IM 增强仿真平台 DM、CI
开发语言·matlab·ci/cd
rit84324992 天前
MATLAB中Teager能量算子提取与解调信号的实现
开发语言·matlab
我找到地球的支点啦2 天前
通信扩展——扩频技术(超级详细,附带Matlab代码)
开发语言·matlab
Dev7z2 天前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab
fengfuyao9852 天前
基于MATLAB的表面织构油润滑轴承故障频率提取(改进VMD算法)
人工智能·算法·matlab
机器学习之心2 天前
基于随机森林模型的轴承剩余寿命预测MATLAB实现!
算法·随机森林·matlab