matlab 地形图案例,matlab-画地形图

1.画三维图

之前画曲面的三维图,运用z=x2+y2算出z和Z,如果是给出数据的地形则没办法用公式算,为此,引入插值自动造出地形的坐标。

拟合和插值的区别:插值是必须要过点,曲线可以不光滑;拟合则是可以不过点,曲线要光滑。

例如依旧画出z=x2+y2,但只给出固定点,插值出Z矩阵。

clc;

clear all;

x=[-3 -2 -1 0 1 2 3];

y=[-3 -2 -1 0 1 2 3];

z=[18 8 2 0 2 8 18];

xminn=min(x)

xmaxx=max(x)

yminn=min(y);

ymaxx=max(x);

zminn=min(z);

zmaxx=max(z);

[X,Y,Z]=griddata(x,y,z,linspace(xmaxx,xminn)',linspace(yminn,ymaxx),'v4');

%v4是一个插值,理解成自动造出Z矩阵即可,第4第5个需要其中一个转置

surf(X,Y,Z)

d9027b65e7bc18ad326d173f164829de.png

再用公式法求Z看看画出的图对比是否相同

clear all;

clc;

x=-3:0.05:3;

y=-3:0.05:3;

z=x.^2 + y.^2;

[X,Y]=meshgrid(x,y);

Z=X.^2 + Y.^2;

surf(X,Y,Z);

92b39b7635111313858ca24e727c59f0.png

显然,画出的图形状几乎一样,因为点与点的间距使得图形有些不同,插值有很多种,v4插值适用,就用v4吧,可以尝试其他插值是否得出想要的结果。

2.画四维图

除了长宽高,怎么可能画得出其他维度,往往需要体现地形上的温度、浓度等指标,这类“第四维度”一般用颜色体现出来。

clc

%手动导入表中数据后,对x、y、z、r赋值

x=one(:,1);

y=one(:,2);

z=one(:,3);%高度

r=one(:,11);%浓度

[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值,造出Z

variables=one(:,1:3);

F=TriScatteredInterp(variables,r,'linear');

R=F(X,Y,Z);

%以上3句,理解为造出R,这个R和前三个东西都有关系,插值用的是linear,此处不能用v4

surf(X,Y,Z,R)

title('4D');

colormapeditor %颜色编辑器,颜色较深可调色,嫌麻烦就随便弄1,工具-标准颜色图-hsv

50d8d9543319f4a351e6e10e3b5a1f63.png5106bf369c21a7100f26271ebc0789f7.png

为了体现“第四维度”,一般需要调出颜色条。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值