假设我有三个代表n(X,Y,Z)值对的1xn向量,如果我想使用这三个向量生成表面图(有一些平滑),那么最快的方法是什么?
答案 0 :(得分: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');
答案 1 :(得分:1)
根据平滑的含义,曲线拟合工具箱可能是一个不错的选择。这将允许您进行插值,以及平滑拟合数据。
您可以使用互动工具:
cftool
或者您可以从命令行进行操作。在本节中,我拟合了一个曲面,使用拟合对象使用我的第一个z
和x
值对y
进行预测,然后绘制拟合曲面。作为参考,可以在此处找到fit
的文档:http://www.mathworks.co.uk/help/curvefit/fit.html
示例数据:
load franke
Lowess Smoothing
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)