基于MATLAB读取空间分布点的时程数据并绘制云图的动态视频

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

​基于MATLAB读取空间分布点的时程数据并绘制云图的动态视频

⛄ 完整代码

% 读取空间分布点的时程数据,并绘制云图的动态视频

clear all;close all;

%==================

% % 加载数据

% % 风压时程数据Pressure_history.mat,其中变量只有Pressure_history

% % Pressure_history第1-2列表示所有节点的[x,y]坐标

% % Pressure_history第3列开始,每一列表示所有节点的某个时刻的时程数据,本例表示风压时程

% load('Pressure_history.mat'); % 是一个Np*(2+Nt)的矩阵,Np表示节点数目,Nt表示时程数目

%==================

% 为了避免无法运行,此处生成随机的风压时程数据

xmin=0;xmax=4;ymin=0;ymax=1; % 定义云图绘制范围

xl=linspace(xmin,xmax,41)';

yl=linspace(ymin,ymax,31)';

[X,Y]=meshgrid(xl,yl);

x=reshape(X,[],1);y=reshape(Y,[],1);Np=length(x); % 得到节点坐标

Nt=20; % 定义时程数据长度

Pt=rand(Np,Nt); % 生成随机风压时程数据

Pressure_history=[x,y,Pt]; % 将坐标和时程数据组合

%===================

% 制作动图

tic; % 开始计时

for i=1:Nt % 自己根据需要选定哪些时刻进行绘制

    set(gcf,'outerposition',get(0,'screensize')); % 窗口最大化,看情况是否需要

    %===================

    % 方法1:根据散点插值;适用于任意散点

    data=[Pressure_history(:,1:2),Pressure_history(:,i+2)]; % 某个时刻的所有节点数据 [x,y,Pt_i]

    [X,Y,Z_u]=griddata(data(:,1),data(:,2),data(:,3),linspace(xmin,xmax,31)',linspace(ymin,ymax,21),'v4');

    %===================

%     % 方法2:由已有节点直接reshape生成网格节点;适用于规则节点情况

%     x0=Pressure_history(:,1);y0=Pressure_history(:,2);z0=Pressure_history(:,i+2);

%     X=reshape(x0,length(yl),length(xl));

%     Y=reshape(y0,length(yl),length(xl));

%     Z_u=reshape(z0,length(yl),length(xl));

    %===================

    [C,h]=contourf(X,Y,Z_u,20,'w-');shading flat;

    set(colorbar('SouthOutside'));caxis([0 1]); % 定义bar的刻度范围

    set(gca,'FontName','Times New Roman','FontSize',12); % 定义字体、字号

    set(gca, 'PlotBoxAspectRatio',[(xmax-xmin)/(ymax-ymin) 1 1],'XLim',[xmin xmax],...

                                      'YLim',[ymin ymax],'ZLim',[0 1]); % 定义云图范围及比例

    ab=15;xlabel('{\itx}/m','FontName','Times New Roman','fontsize',ab);

    ylabel('{\ity}/m','FontName','Times New Roman','fontsize',ab);    

    set(gca,'xtick',[xmin:0.5:xmax],'ytick',[ymin:0.2:ymax]); % x,y轴刻度

    title(strcat('第',num2str(i,'%03d'),'秒'),'FontName','Times New Roman','fontsize',ab); % 标题

    M(i)=getframe(gcf); % 保存当前图片窗口

end;

timeelapse=roundn(toc,-1);% 结束计时,保留一位小数点

fprintf(strcat('耗时=',num2str(timeelapse),'秒\n')); % 在屏幕中输出耗时

movie2avi(M, 'my.avi', 'compression', 'None','FPS',2);

%==========================================================================

⛄ 运行结果

⛄ 参考文献

[1]刘峰, 刘娟, 李萍,等. 基于MATLAB实现3种气象数据的读取和绘图[J]. 广东气象, 2007, 29(4):3.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值