matlab 使用 contourf 或 scatter 绘制动图输出成视频,避免帧与帧之间重合

news/2024/4/27 23:40:37

一般的读取场的每个时刻的状态,然后输出成视频的 matlab 代码类似这样

video_name = 'zeta_video';
obj = VideoWriter(video_name);
obj.FrameRate = 10;
open(obj);T_STEP = 1.8e-3;
MAX_STEP = 50000;
OUTPUT_GAP = 500;x = linspace(0, 8, 513);
y = linspace(0, 8, 513);
[X,Y] = meshgrid(x,y);levels = linspace(-15, 15, 100);t_len = MAX_STEP/OUTPUT_GAP;n = 0:OUTPUT_GAP:MAX_STEP-OUTPUT_GAP;nImages = length(n);
fig = figure;
%Draw multiple images to display and store each image into a cell array%
for idx = 1:nImageszeta = csvread(sprintf('./zeta/zeta_%d.csv', n(idx)));[C,h] = contourf(X, Y, zeta', levels);clim([-15 15]);xlim([1 3]);ylim([3 5]);colorbar;set(h,'LineColor','none');title(sprintf('zeta t = %.2fs', n(idx)*T_STEP));drawnowframe = getframe(fig); writeVideo(obj,frame);
endclose(obj);

后来我想用 scatter 画的时候,发现帧与帧之间的图像重合了

video_name = 'p_video';
obj = VideoWriter(video_name);
obj.FrameRate = 20;
open(obj);T_STEP = 1.8e-3;
MAX_STEP = 50000;
OUTPUT_GAP = 200;x = linspace(0, 8, 512);
y = linspace(0, 8, 512);
[X,Y] = meshgrid(x,y);levels = linspace(-0.001, 0.001, 100);t_len = MAX_STEP/OUTPUT_GAP;n = OUTPUT_GAP:OUTPUT_GAP:MAX_STEP-OUTPUT_GAP;nImages = length(n);
fig = figure;
%Draw multiple images to display and store each image into a cell array%
for idx = 1:nImagesp = csvread(sprintf('./p/p_%d.csv', n(idx)));p = p';ax = axes();scatter(X(:), Y(:), [], p(:), 'filled');colormap(ax, jet(numel(levels)-1)); % set colormapcaxis(levels([1,end]));             % set color rangecb = colorbar();xlim([1 3]);ylim([3 5]);title(sprintf('zeta t = %.2fs', n(idx)*T_STEP));drawnowframe = getframe(fig); writeVideo(obj,frame);
end\close(obj);

最后发现是我在循环里面创建 axes 的缘故

改成

ax = axes();%Draw multiple images to display and store each image into a cell array%
for idx = 1:nImages...
end

就好了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Linux 安装 Gitblit

1.下载Gitblit 官网地址:Gitblit,目前最新的是1.9.3 2.上传到服务器 ①在服务器上新建目录:/usr/local/gitblit ②将下载的文件上传到服务器:/usr/local/gitblit/gitblit-1.9.3.tar.gz ③解压文件: cd /usr/local…

云原生消息流系统 Apache RocketMQ 在腾讯云的大规模生产实践

导语 随着云计算技术的日益成熟,云原生应用已逐渐成为企业数字化转型的核心驱动力。在这一大背景下,高效、稳定、可扩展的消息流系统显得尤为重要。腾讯云高级开发工程师李伟先生,凭借其深厚的技术功底和丰富的实战经验,为我们带…

matlab喷车行走轨迹绘制

1、内容简介 略 64-可以交流、咨询、答疑 2、内容说明 matlab喷车行走轨迹绘制 在喷涂过程中,喷枪从被喷涂的区域开始行走,设其中M和N为小车左边驱动模块的左右轮,I和J为小车右边驱动模块的左右轮,两个驱动模块之间的距离为L&…

腾讯云轻量服务器地域怎么选择?上海/北京/广州哪个合适?

腾讯云轻量应用服务器地域如何选择?地域就近选择,北方选北京地域、南方选广州地域,华东地区选上海地域。广州上海北京地域有什么区别?哪个好?区别就是城市地理位置不同,其他的差不多,不区分好坏…

使用Python的zipfile模块巧解Word批量生成问题

目录 一、zipfile模块简介 二、Word文档的结构 三、使用zipfile模块生成Word文档 创建ZIP文件 添加文件到ZIP中 生成Word文档内容 批量生成Word文档 四、案例与代码实现 五、总结 在日常办公和自动化任务中,批量生成Word文档是一个常见的需求。然而&am…

爬虫学习 Scrapy中间件代理UA随机selenium使用

目录 中间件UA、代理处理---process_requestUA随机 代理处理seleniumscrapy 中间件 控制台操作 (百度只起个名 scrapy startproject mid scrapy genspider baidu baidu.com setting.py内 ROBOTSTXT_OBEY FalseLOG_LEVEL "WARNING"运行 scrapy crawl baidu middle…