✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
基于MATLAB的不规则节点的云图绘制
⛄ 完整代码
% 不规则节点的云图绘制
clear all;close all;
%================================================================
% 假定已有x,y坐标节点是随机的(实际数值模拟或实验时候是确定的,但通常不一定规则分布)
xmin=0;xmax=2;ymin=0;ymax=1;
XY_measured=rand(100,2); % 假定数据有若干个,随机生成的数是[0,1],需转到指定范围
XY_measured(:,1)=xmin+(xmax-xmin)*XY_measured(:,1); % [0,1]->[xmin,xmax]
XY_measured(:,2)=ymin+(ymax-ymin)*XY_measured(:,2); % [0,1]->[xmin,xmax]
Fxy_measured=sin(pi*XY_measured(:,1)).*cos(pi/2*XY_measured(:,2))+sin(pi/2*XY_measured(:,1));
alldata=[XY_measured,Fxy_measured]; % 至此,构造了不规则的节点数据,若是数值模拟或实验,alldata是已知的
%================================================================
% Method1:griddata插值 linear,cubic,natural,nearest,v4
xl=linspace(xmin,xmax,101)';
yl=linspace(ymin,ymax,101)';
[X,Y,Fxy]=griddata(alldata(:,1),alldata(:,2),alldata(:,3),xl',yl,'v4');
%================================================================
% % Method2:TriScatteredInterp插值 linear,natural,nearest
% Finterp=TriScatteredInterp(alldata(:,1),alldata(:,2),alldata(:,3),'linear'); % 构造插值函数,还有一种griddata函数可以尝试
% xl=linspace(xmin,xmax,101)';
% yl=linspace(ymin,ymax,101)';
% [X,Y]=meshgrid(xl,yl); % 构造规则网格节点
% Fxy=Finterp(X,Y);
%================================================================
% 绘图
[C,h]=contourf(X,Y,Fxy,20,'w-'); % 等高线云图
shading flat; % 平滑过渡
colorbar; % 调出颜色对应的bar
caxis([-0.4 1.6]); % 设置bar的数值范围
colorbar('ytick',[-0.4:0.4:1.6]); % 设置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);
title('函数等高线云图','fontsize',ab);
⛄ 运行结果
⛄ 参考文献
[1]陈红敏, 马俊逸, 苏靖晰. 基于卫星云图的对流云团识别方法研究[J]. 信息技术与信息化, 2019.