用MATLAB绘制三维地形高程图

作者&投稿:祁勉 (若有异议请与网页底部的电邮联系)
请问如何使用MATLAB画三维地形起伏度图~

您好,这样的:
1)xlsread ,read the excel file

2)xx=28:0.1:36; yy=113.5:0.1:122 ,zz=xlsread(...)
[x,y,z]=meshgrid(xx,yy,zz)

3)surf,plot3,mesh....
同学问Matlab能不能画三维地形图,答案是肯定的,不过我想到的方法是下载一下地形数据进行画图,matlab自带的或是M_map中使用的地形貌似只能画二维图(在我去年的一个帖子中有介绍画二维高精度地形数据的方法http://bbs.06climate.com/forum.php?mod=viewthread&tid=4206&page=1&extra=#pid29634 ,如果有采用Matlab自身地形数据画三维地形图方法的话,希望有同学能指教),地形数据采用了ETOPO5,数据网址是http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NGDC/.ETOPO5/.elev/?help+datafiles 。

g=imread('C:\Users\Administrator\Desktop\2014国赛\A\附件3 距2400m处的数字高程图.tif');
gg=double(g); % 转为数值矩阵
gg=gg-1/255; % 将彩色值转为 0-1 的渐变值
[x,y]=size(gg); % 取原图大小
[X,Y]=meshgrid(1:y,1:x); % 以原图大小构建网格
mesh(X,Y,gg); % 网格上画出图像

你是国赛A题的吧。。。

具体方法如下:

1、将已知的海拔数据放入一个矩阵A中。

2、从矩阵A中获取x,y,z坐标数据

3、根据x,y,z坐标数据,利用griddata函数,进行插值,并绘制伪彩色图。

4、绘制等高线图,代码如下:figure(3),contourf(X,Y,Z) 

绘制山地曲面图,代码如下:figure(4),surf(X,Y,Z)

完整的MATLAB代码如图所示。

5、运行结果如下:

散点图

6、伪彩色图

7、等高线图

8、山地三维曲面图



画图到不难,就是你这个数据预处理稍微麻烦点,首先得把数据转成栅格数据,就是把x,y,z这三个列向量都变成矩阵,幸好你的数据x和y还是排序好的,栅格化:[X Y]=meshgrid(x,y),我这就给你编好哇;
Z=meshgrid(z);%z转为栅格数据
n=length(z);
X=repmat(x',n,1);%Z对应的x和y数据二维矩阵
Y=repmat(y',n,1);

然后用二维插值,ZI=interp2(X, Y, Z, XI, YI, method),细化数据,具体interp2用法自己查查,不细说了,都是栅格数据;

最后用meshc画:meshc(XI,YI,ZI),这是带等高线的三维曲面图,(或用surfc,你看哪个效果好吧)

一般计算机,处理几千乘几千的矩阵就差不多极限了吧,主要是内存会不够,如果你电脑好的话,多大都不怕

本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!



发到我邮箱,我帮你解决一下。
前面那一排1是啥意思?

数据大小没问题,肯定能处理,具体你可以help一下contour3函数!


如何用matlab绘制三角形?
1、点击图标,打开matlab。2、输入代码:[x,y]=meshgrid(1:0.1:10, 1:0.1:10);z=x.^2+y.^2;surf(x,y,z)3、点击运行。4、在弹出的文件存储页面中,选择一个任意位置,点击保存即可。5、保存后matlab自动运行程序,得出的图像如下:

matlab如何画三维图
1、plot3三维曲线图。启动MATLAB,新建脚本(.m文件),在脚本编辑区输入以下代码,然后保存运行后,看到三维曲线图。close all;clear all;clc z=linspace(0,10,101);x=sin(z);y=cos(z);plot3(x,y,z,'g','LineWidth',2)hold on plot3(x,y,z,'p','MarkerSize',10)其中,linspace(a1,...

matlab中怎么绘制三维图像?
如何用matlab中怎么绘制参数方程的三维图像?这个问题可以按下列步骤来实现:第一步,分别创建x(q,r),y(q,r),z(q,r)自定义函数,即 funx=@(q,r)0.7446*cos(q).*r-7.290-0.2079.*sin(q).*r+0.2599*r;funy=@(q,r)0.2008*cos(q).*r+2.169-0.9781.*sin(q).*r+0.5523...

matlab如何画三维图
1、plot3三维曲线图。启动MATLAB,新建脚本(.m文件),在脚本编辑区输入以下代码,然后保存运行后,看到三维曲线图。close all;clear all;clc z=linspace(0,10,101);x=sin(z);y=cos(z);plot3(x,y,z,'g','LineWidth',2)hold on plot3(x,y,z,'p','MarkerSize',10)其中,linspace(a1,...

使用Matlab绘制三维图像步骤 不要敷衍 如果可以 请绘制Rosenbrock函数...
而且画出来的就是rosenbrock函数。有不明白的再问吧~function createfigure% Create figurefigure1 = figure('Position',[10 40 1200 600]);colormap('gray');axis square;R=0:.002:1;TH=2*pi*(0:.002:1); X=R'*cos(TH); Y=R'*sin(TH); Z=log(1+vrosenbrock(X,Y));% Create subplotsubplot...

如何利用matlab绘制函数图像?
第一步,确定自变量x的范围,如 x=linspace(0,10) %生成x等差数列向量组,公差为0.01,100个等分点 第二步,计算与x对应的y值 y=4*x.^4-18*x.^3+28*x.^2-18*x+4 %计算时,需使用点乘计算 第三步,创建一个新的图窗 figure 第四步,使用plot绘图函数,绘制函数图像 plot(x,y,...

关于MATLAB画三维函数图
1、打开matlab,在命令行窗口中输入如下图所示,绘制三维函数图。2、按回车键之后,可以看到绘制的三维函数图。3、接下来绘制三维饼图,输入“pie3([5 3 6 7 9])”。4、按回车键之后,可以看到绘制的三维饼图。5、然后输入相应的代码文件,如图所示:6、最后的结果如图所示。

matlab怎么绘制三维随机数字图像
1、首先双击matlab软件图标,使用语句:x=0:0.2:7*pi;创建一个一维数组,表示三维离散序列图的在x轴上的分布范围。2、使用语句:y=exp(-x\/9).*cos(x);z=4*exp(-x\/9).*sin(x);创建三维序列图的方程,这样就有了完整的三维坐标了。3、然后使用语句:stem3(y,z,x,'filled');绘制三维...

matlab已知点的坐标,绘制三维图(急急急,在线等)
使用plot3()命令,例如 t = 0:pi\/50:10*pi;plot3(sin(t),cos(t),t);

matlab怎么用三维矩阵画三维图
1、对于三维图形其有x、y、z三个坐标轴,数据也要按三维确定,如图所示,下面是部分单位数据样例。2、首先需要将数据读取到MATLAB工作空间(workspace)中,使用xlsread()函数即可,使用绝对路径读取,因为不在MATLAB默认路径内。3、接着,需要将x1、y1、z1数据分别从矩a中提取出来。4、然后使用三维散...

平利县17146243369: 如何用matlab绘制三维地形图 -
冷月肾炎: 用matlab画地形图,包括三维地形图以及平面热度图的方法.参考代码如下: [plain] view plain copy 在CODE上查看代码片派生到我的代码片 temp1=xlsread('cumcm2011','附件1'); x=temp1(:,2);y=temp1(:,3);%数据格式均为列向量 alti=temp1(:,...

平利县17146243369: 如何用matlab画三维地形图 -
冷月肾炎: 1)xlsread ,read the excel file2)xx=28:0.1:36; yy=113.5:0.1:122 ,zz=xlsread(...)[x,y,z]=meshgrid(xx,yy,zz) 3)surf,plot3,mesh....

平利县17146243369: matlab将高程图变为三维 -
冷月肾炎: g=imread('C:\Users\Administrator\Desktop\2014国赛\A\附件3 距2400m处的数字高程图.tif'); gg=double(g); % 转为数值矩阵 gg=gg-1/255; % 将彩色值转为 0-1 的渐变值 [x,y]=size(gg); % 取原图大小 [X,Y]=meshgrid(1:y,1:x); % 以原图大小构建网格 mesh(X,Y,gg); % 网格上画出图像 你是国赛A题的吧...请采纳.

平利县17146243369: matlab 处绘制三维高程图 -
冷月肾炎: matlab里有很多三维图像绘制函数,比如plot3,surf,coutour(等高线),你在help里输入函数名看看帮助文档,里面有例子和函数调用格式,还有与之近似的函数,可以帮助你找到适合你的.

平利县17146243369: 如何用matlab打开三维数字高程图 -
冷月肾炎: 做A题的吧,哈哈....不是说了用imread()函数么,把矩阵数据读进去,然后第一行第一列的高程告诉你了,作为基准,设置colorbar,然后绘制出3维的图,不谢

平利县17146243369: 我有上万个数据,如何用matlab绘制成三维地形图 -
冷月肾炎: surf(X,Y,Z)X,Y表示参数,Z表示值例如Z=f(X,Y)X,Y都是一维向量如果你的值X是矩阵那么利用reshape(X,length(X),1)化成一维的向量(对三个都)再利用surf

平利县17146243369: 怎么用matlab画三维数字地图?中间内容为高度(单位:km) 纵坐标(单位:km) 横坐标(单位:km) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... -
冷月肾炎:[答案] 先用原始点绘图,再用平滑绘图. clear;clc; A=[... 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 20 0.2 0.2 0.2 0.2 0.2 0.2 0.4 0.4 0.3 0.2 0.3 0.2 0.1 0.2 0.2 0.4 0.3 0.2 0.2 0.2 0.2 19 0.3 0.2 0.2 0.2 0.2 0.4 0.3 0.3 0.3 0.3 0.4 0.2 0.2 0.2 0.2 0.4 0....

平利县17146243369: 如何使用MATLAB来绘制地形图 -
冷月肾炎: 这是二维插值问题:用interp2和grdidata来完成 interp2:处理网格型数据 grdidata:处理随即数据,使用楼主的情况你也没给数据,就给你个示范吧 x=[]; %已知数据 y=[]; z=[]; [x1,y1]=meshgrid(??;??); %生成插值点(??用网格型差插值数据来代替)即,插入的新的x维y维数据 z1=griddata(x,y,z,x1,y1,'v4'); %计算得出的z值,v4是一种算法,这种情况下很好用 surf(x1,y1,z1);axis([??,??,??,??,??,??]) %6个??分别来确定xyz轴的起止如还有问题,联系

平利县17146243369: 用matlab 绘制三维地形图 -
冷月肾炎: p = peaks(60); surf(p); box on; colorbar; grid off;

平利县17146243369: 如何 用matlab 绘制区域高程数据图 -
冷月肾炎: matlab三维图像绘制函数比plot3,surf,coutour(等高线),help输入函数名看看帮助文档面例函数调用格式与近似函数帮助找适合

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网