MATLAB 动态图GIF

MATLAB 动态图GIF


前言

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


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

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

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

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

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)

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)

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. 动态曲面


总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/99127.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bash: cmake: command not found...+++++++lsb_release: command not found

一 .bash: cmake: command not found… centos中安装那个cmake。 1、问题 [rootPC3 home]# cmake bash: cmake: command not found... Similar command is: make当前系统: [rootPC3 home]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx…

mysql索引为什么提高查询速度(底层原理)

一、索引原理图 二、索引数据存储到硬盘而不是内存? 硬盘内存 成本低成本高 容量大容量小 读写速度一般读取速度快 断电后数据永久存储断电后数据清空 三、硬盘数据为什么要读取到内存?为啥不直接…

HarmonyOS—UI开发性能提升的推荐方法

注:本文转载自HarmonyOS官网文档 开发者若使用低性能的代码实现功能场景可能不会影响应用的正常运行,但却会对应用的性能造成负面影响。本章节列举出了一些可提升性能的场景供开发者参考,以避免应用实现上带来的性能劣化。 使用数据懒加载 开…

rpm打包

文章目录 rpm打包 1. rpm打包步骤0)准备工作:安装打包工具rpm-build和rpmdevtools(1)在线安装(2)离线安装 1)创建初始化目录2)准备打包内容3)编写打包脚本 spec文件4&…

Android Studio 汉化

一、汉化: 查看版本号,查看Android Studio版本,根据版本下载对应的汉化包。例如我的是223。 下载汉化包: 中文语言包下载地址 找到对应的版本 回到Android Studio 1、进入设置 2、从磁盘安装插件 3、选择下载好的包点击OK 4、…

【计算机网络】http协议

目录 前言 认识URL URLEncode和URLDecode http协议格式 http方法 GET POST GET与POST的区别 http状态码 http常见header 简易的http服务器 前言 我们在序列化和反序列化这一章中,实现了一个网络版的计算器。这个里面设计到了对协议的分析与处…

QT 一个简易闹钟

1 效果图 pro QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your c…

测试理论与方法----测试流程第三个环节:设计测试用例

测试流程第三个环节&#xff1a;设计测试用例&#xff1a;怎么测<——>测试需求的提取&#xff1a;测什么 ### 5、测试用例 描述&#xff1a;测试用例(TestCase)&#xff1a;是一份关于【具体测试步骤】的文档&#xff0c;是为了达到最佳的测试效果或高效揭露软件中潜藏的…

使用C++操作Redis客户端

"Who can say where the path will go?" 前面我们花了很大的篇幅&#xff0c;讲解了redis中常见常使用的五种数据结构&#xff0c;以及五种数据结构的操作和redis命令。不过在日常开发中&#xff0c;我们的这些操作都是在redis为我们提供的客户端中的&#xff0c;就…

Xilinx UltraScale架构之可配置逻辑块CLB

目录 一、概览 二、UltraScale架构 2.1 UltraScale/UltraScale特点 2.2 与7系列CLB差异 三、 CLB结构 3.1 LUT 3.2 FF 3.3 多路选择器Multiplexers 3.4 进位链Carry Chain 四、应用 4.1 分布式RAM 4.2 移位寄存器 4.3 进位链Carry Chain 五、参考资料 一、概览 二…

WSL Opencv with_ffmpeg conan1.60.0

我是ubuntu18. self.options[“opencv”].with_ffmpeg True 关键是gcc版本需要conan支持&#xff0c;比如我的是&#xff1a; compilergcc compiler.version7.5 此外还需要安装系统所需库&#xff1a; https://qq742971636.blog.csdn.net/article/details/132559789 甚至来…

最小生成树Kruskal、Prim算法C++

什么是最小生成树 连通图&#xff1a; 在无向图中&#xff0c;若从顶点v1到顶点v2有路径&#xff0c;则称顶点v1和顶点v2是连通的。如果图中任意一对顶点都是连通的&#xff0c;则称此图为连通图。 生成树&#xff1a; 一个连通图的最小连通子图称作为图的生成树。有n个顶点的…