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

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

2019-10-15 · 每个回答都超有意思的
知道答主
回答量:1626
采纳率:100%
帮助的人:44.4万
展开全部

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、完成效果图。

ring_year
推荐于2017-10-12 · TA获得超过1425个赞
知道小有建树答主
回答量:632
采纳率:80%
帮助的人:532万
展开全部
% 方法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组。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式