最近遇到个问题,如何利用一大堆三维坐标点,拟合出三维曲面。
不知道大家有没有遇见过,就是下面这种。
我当然是上网百度啊之类的,想看看要怎么作,但转了一圈下来,发现网上几乎是关于下面情况的作图说明,即:我现在知道x坐标y坐标,z坐标是关于每个(x,y)的函数表达式。就像最普遍的例子,看下图(其实下图是利用python的作图,不过意思差不多就这样)
但我这次是需要直接利用(x,y,z)坐标绘制三维曲面,那就要换种方法了,matlab开启。
1.首先要将x,y,z坐标导入matlab
x=xlsread('D:\需重新画图的数据.xlsx','Sheet1','A1:A......');
y=xlsread('D:\需重新画图的数据.xlsx','Sheet1','B1:B......');
z=xlsread('D:\需重新画图的数据.xlsx','Sheet1','C1:C......');
“......”代表数字,都懂的
2.接着就要创建以x,y坐标为基准的网格
xmax=max(x);
xmin=min(x);
ymax=max(y);
ymin=min(y);
[X,Y]=meshgrid(xmin:5:xmax,ymin:5:ymax);
max(),min()命令就是取最大值最小值