matlab在地形图上标注原始最高点
基本思路:1.绘制三维图形。
2.寻计算结果里面的最大值(就是楼上的方法,当然也有分布寻的方法)。
matlab等高线标注字体大小3.在三维图形中标记出来。
贴图和源代码:
图中的红五角星就是到的最大值(这里有两处,该方法有几个就能到几个,不受1的限制)。
源代码(Matlab):
clc;
clear all;
close all;
x = -3:0.1:3;
y = -3:0.1:3;
[xx,yy] = meshgrid(x,y);
zz = example(xx,yy);
mesh(xx,yy,zz);
[y_loc,x_loc]=find(zz==max(max(zz))); % mesh命令后,坐标轴发生了旋转
hold on
plot3(x(x_loc),y(y_loc),example(x(x_loc),y(y_loc)),'rp');
hold off
子函数:
function zz = example(xx,yy)
zz = xx.^2+2*yy;
end
备注:需要说明的是,mesh命令后,坐标轴发生了旋转,到的xy位置是相反的。
x=100:10:2000;
y=x;
[X,Y]=meshgrid(x,y); %网格化x、y
Z=X.*(1-Y./(X+Y)); %计算Z
mesh(X,Y,Z); %画出图形
zmax=max(max(Z)); %出Z的最大值zmax
[id_ymax,id_xmax]=find(Z==zmax);
xmax=x(id_xmax);
ymax=y(id_ymax); %出Z的最大值对应的横纵坐标xmax、ymax
hold on
plot3(xmax,ymax,zmax,'k.','markersize',20) %标记一个黑的圆点
text(xmax,ymax,zmax,[' x=',num2str(xmax),char(10),' y=',num2str(ymax),char(10),' z=',num2str(zmax)]); %标出坐标
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论