假设我有代表 n (X, Y, Z) 值对的三个 1xn 向量,如果我想使用这三个向量(经过一些平滑处理)生成曲面图,那么最快的方法是什么?
问问题
3955 次
2 回答
2
看doc TriScatteredInterp
F = TriScatteredInterp(X, Y, Z);
%the steps of tx and ty will allow you change smoothness
tx = min(X):max(X);
ty = mix(Y):max(Y);
[qx,qy] = meshgrid(tx,ty);
qz = F(qx,qy);
mesh(qx,qy,qz);
hold on;
plot3(x,y,z,'o');
于 2013-06-04T02:21:02.367 回答
1
根据平滑的含义,Curve Fitting Toolbox 可能是一个不错的选择。这将允许您对数据进行插值和平滑拟合。
您可以使用交互式工具:
cftool
或者您可以从命令行操作。在本节中,我拟合了一个曲面,使用 fit 对象对z
我的第一个x
和y
值进行预测,然后绘制拟合曲面。作为参考,fit
可以在这里找到文档:http: //www.mathworks.co.uk/help/curvefit/fit.html
示例数据:
load franke
Lowess 平滑
f = fit([x,y],z, 'lowess')
zPrediction = f(x(1), y(1))
plot(f)
分段三次插值
f = fit([x,y],z, 'cubicinterp')
zPrediction = f(x(1), y(1))
plot(f)
用户定义方程
f = fit([x,y],z, 'a*x+b*exp(y)+c')
zPrediction = f(x(1), y(1))
plot(f)
于 2013-06-04T07:12:53.247 回答