matlab如何将离散点拟合成曲面

现有三维离散点300组 这300组坐标没有规律 如何在matlab中画出光滑曲面图? 数据已导入到matlab
matlab里有三个300行1列的矩阵 接下来怎么写?

1、在新建的脚本文件编辑框键入以下代码 

clear  

clc 

%产生数据 

x=-20:2:20;

y=-20:2:20;

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

Z=3*X.^3-4*X+2*Y.^4+3*Y^3;

mesh(X,Y,Z)

2、待拟合的曲面形状为,

3、首先,在APP选项框中打开Curve fitting工具。工具位置如图所示。

4、单击curve fitting之后,打开页面结果如下。

5、单击X data选框,选择待拟合的数据X。

6、单击Y data选框,选择待拟合的数据Y。

7、单击Z data选框,选择待拟合的数据Z。

8、完成效果图。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-12
% 方法1
T = [1:100];D = [1:100]; K = rand(1,100);
% 插值
[X,Y,Z]=griddata(T,D,K,linspace(min(T),max(T))',linspace(min(D),max(D)),'v4');
figure,surf(X,Y,Z);

%方法2
x = [1:100];y = [1:100]; z = rand(1,100);
xlin = linspace(min(x),max(x),33);
ylin = linspace(min(y),max(y),33);
[X,Y] = meshgrid(xlin,ylin);
Z = griddata(x,y,z,X,Y,'v4');
mesh(X,Y,Z) %interpolated
axis tight; hold on
plot3(x,y,z,'.','MarkerSize',15) %nonuniform

追问

不对吧 我的xy取值大概在-170 到170 你是这0到100
不要把数值改了 我只要将这些点拟合成一个光滑曲面

追答% 方法1
T = xx;D = yy; K = zz;
% 插值
[X,Y,Z]=griddata(T,D,K,linspace(min(T),max(T))',linspace(min(D),max(D)),'v4');
figure,surf(X,Y,Z);

你自己运行吧,你数据没办法复制,再说,也没有300组。

本回答被提问者和网友采纳
相似回答