作业帮 > 综合 > 作业

如何用Matlab做曲面拟合!

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/04 04:53:52
如何用Matlab做曲面拟合!
我现在知道30个点的xyz坐标,我想用Matlab做一个曲面去拟合这些点,请问我改如何操作,请给我一个具体的过程,
帮我用这几个点的数据写出简单步骤好么,偶比较菜.
(2,4,8),(12,14,18),(24,44,84),(52,34,28),(22,4,48),出来结果的话偶追加分数~【我的数据点都是平面内很散的点】
如何用Matlab做曲面拟合!
clf;clear,clc
p=rand(30,3);
x=p(:,1);y=p(:,2);z=p(:,3);%30组坐标
[xi,yi]=meshgrid(linspace(min(x),max(x),100),linspace(min(y),max(y),100));
zi=griddata(x,y,z,xi,yi,'v4');
surf(xi,yi,zi);
%shading interp %去除网格
再问: 你好,我的点很散,请您帮我用上面机组简单的数据,写一个程序吧~我自己是30多个点的(x,y,z)坐标,请问我怎么弄啊,急救啊大侠~~
再答: 我代码已经给你了,换成你的数据就是1+1的事情,这都不会? 我的p里边存的就是30组点 你把你的30组点的x坐标,y坐标,z坐标放到p(或者直接放到x,y,z里边就行了) 你要是还是真不会你就把数据贴出来;
再问: 大侠,图我画出来了。我用scatter(x,y,5,z)把散点在也画在曲面上,但是很不明显,看得极其不清楚,有方法把点搞得大一些么?
再答: 对于三维坐标(x,y,z) 你想画散点用的是 scatter3(x,y,z,s,c) x,y,z是坐标,s是点的大小,c是颜色 clf;clear,clc p=rand(30,3); x=p(:,1);y=p(:,2);z=p(:,3);%30组坐标 [xi,yi]=meshgrid(linspace(min(x),max(x),100),linspace(min(y),max(y),100)); zi=griddata(x,y,z,xi,yi,'v4'); hold on surf(xi,yi,zi); shading interp %去除网格 h=scatter3(x,y,z,50,5*ones(size(x)),'filled'); 这样清楚了