热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab取出矩阵某行某列_Matlab制作视频并转换成gif动态图的两种方法

第一种方式closeall;clearall;clc;clf;xlabel(X轴);ylabel(Y轴);boxon;axis([-2,2,-2,2]);axisequal;pau

第一种方式

close all;

clear all;

clc;

clf;

xlabel('X轴');

ylabel('Y轴');

box on;

axis([-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);

frame=getframe(gcf);

imind=frame2im(frame);

[imind,cm] = rgb2ind(imind,256);

if n==1

imwrite(imind,cm,'test.gif','gif', 'Loopcount',inf,'DelayTime',1e-4);

else

imwrite(imind,cm,'test.gif','gif','WriteMode','append','DelayTime',1e-4);

end

end

效果图

fe22dd1905d6bea8606814bfc7dfcdb6.gif

二、第二种方法是先将每一个动画中的图片保存下来到一个文件夹中,然后进行读取并且制作出视频文件

程序示例:

function Avi() %%大小写非常重要%% n = 64; WriterObj = VideoWriter('wmw');

WriterObj.FrameRate = 100;%此语句必须放置在

%WriterObj = VideoWriter('wmw')语句之后才能设置帧率

open(WriterObj);for i=1:n%逐次取出文件frame=imread(['C:甥敳獲AdministratorDesktop图片',num2str(i),'.jpg']); %读取文件writeVideo(WriterObj,frame);end close(WriterObj);

原图片文件在百度网盘:

链接:http://pan.baidu.com/s/1miFgCsg 密码:vauv

下载之后保存在桌面上,程序就可以直接运行

总结;

Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,

一. AXIS 移动坐标系
这种方法是最简单的一种方法,适合于数据已经全部生成的场合,先画图,然后移动坐标轴。

二. Hold On 模式
此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一帧图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。

详细内容可以 后台私信“资料”MF送相关视频资料。内容包括:C/C++,Linux,Nginx,golang,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,ffmpeg流媒体,CDN,P2P,K8S,Docker,Golang,TCP/IP,协程,嵌入式,ARM,DPDK等等。。。



推荐阅读
author-avatar
li-yuefang_883
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有