2013-06-04 64 views

回答

1

根據你的意思是什麼平滑,曲線擬合工具箱可能是一個不錯的選擇。這將允許您執行插值以及對數據進行平滑擬合。

您可以使用交互式工具:

cftool 

或者你可以在命令行中運行。在本節中,我已經擬合了一個曲面,用我的第一個xy值對擬合對象進行了z的預測,然後繪製了擬合曲面。作爲參考,對於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) 
+0

偉大的想法,現在我知道什麼叫非參數擬合用於 – AZhu

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');