作业帮 > 综合 > 作业

用MATLAB绘制三维地形高程图

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 05:35:53
用MATLAB绘制三维地形高程图
有一个文本数据文件(文件名:h.txt),格式是:线号,点号,x坐标,y坐标,h高程:
1 11 488333.2 3457332.6 545.2
1 21 488312.4 3457379.6 520.8
1 31 488288.1 3457422.6 512.6
1 41 488268.5 3457468.8 488.8
1 51 488247.6 3457514.4 460.6
1 61 488229.0 3457560.9 449.3
1 71 488211.3 3457608.3 459.9
1 81 488189.7 3457651.9 446.5
1 91 488173.2 3457699.8 462.0
1 101 488150.3 3457744.4 455.6
1 111 488131.7 3457791.4 435.6
1 121 488113.1 3457837.5 423.5
1 131 488086.8 3457880.9 411.2
1 141 488066.5 3457927.2 401.9
1 151 488053.7 3457974.3 403.2
1 161 488026.0 3458017.4 402.8
1 171 488009.1 3458064.9 403.6
1 181 487985.8 3458110.9 403.7
.
数据文件比较大(线距400m,点距50m,面积200平方公里).现需用MATLAB绘制高程图.
请写明命令过程、函数变量,包括读文件、插值、绘图等.另外,MATLAB能处理多大的数据,
@meteora1106:你的思路我明白了,但按这个跑下来,麻烦你检查一下是哪里笔误了?
画图到不难,就是你这个数据预处理稍微麻烦点,首先得把数据转成栅格数据,就是把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,你看哪个效果好吧)
一般计算机,处理几千乘几千的矩阵就差不多极限了吧,主要是内存会不够,如果你电脑好的话,多大都不怕