1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > matlab中已知X Y Z坐标 绘制等高线图

matlab中已知X Y Z坐标 绘制等高线图

时间:2020-09-10 23:46:09

相关推荐

matlab中已知X Y Z坐标 绘制等高线图

本文采用的数据是国赛的题目,使用每一点的x,y坐标,将其对应的每一元素的浓度作为z,绘制金属污染物的二维等高线图

以As为例,以下两个图形还使用了插值算法

load data%每一点坐标信息,共有319个点load data1%浓度信息,有319个数据As=data1(:,1); %1为第一种重金属元素As,若想要其他重金属的,直接改为相应序号X=data(:,1); %横坐标Y=data(:,2); %纵坐标[x y]=meshgrid(0:100:3e4,0:100:2e4); %根据坐标范围划分,作为插值使用z=griddata(X,Y,As,x,y,'v4');%该命令实现插值,v4是插值方法C=contour(x,y,z);title('As')

绘制出来的图形为

还可以绘制整个城区的地形图,就是5个功能区在整个城区的分布情况。

其中,等高线的x,y,z坐标分别代表选取点的x,y,和海拔

function draw1 ()clc,clear%一是生活区、二是工业区、三是山区、四是交通区、五是公园绿地区%画功能区load dataload data1[c1 d1]=find(data(:,4)==1); %即找到功能区1,返回的c1是每个数据对应的位置编号,即行标号;d1就是1x1=data(c1,1); %功能区1的横坐标y1=data(c1,2); %功能区1的纵坐标plot(x1,y1,'r*');[c2 d2]=find(data(:,4)==2); %同上x2=data(c2,1);y2=data(c2,2);hold onplot(x2,y2,'kd','markerfacecolor','k')hold on[c3 d3]=find(data(:,4)==3);x3=data(c3,1);y3=data(c3,2);plot(x3,y3,'cs','markerfacecolor','c')hold on[c4 d4]=find(data(:,4)==4);x4=data(c4,1);y4=data(c4,2);plot(x4,y4,'bp','markerfacecolor','b')hold on[c5 d5]=find(data(:,4)==5);x5=data(c5,1);y5=data(c5,2);plot(x5,y5,'go','markerfacecolor','g')grid onlegend('生活区','工业区','山区','交通区','公园绿地区');hold on%画等高线XYZ=data(:,1:end-1);XYZ=XYZ';[x,y]=meshgrid(0:100:3e4,0:100:2e4); z=griddata(XYZ(1,:),XYZ(2,:),XYZ(3,:),x,y,'v4');%插值C=contour(x,y,z)hold on

绘制图形如下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。