2013-07-31 57 views
0

我試圖做一個MATLAB插值pchip評價。插值工作正常,但是當我使用ppval功能檢查曲線(用於繪圖)我得到一個錯誤信息,我無法弄清楚的問題是什麼。MATLAB:分段多項式(pchip)與ppval

我以前以這種方式使用的pchip功能:易= pchip(X,Y,XI),並且工作正常。但是,我現在只想要係數(pp.coefs)。問題是,當我嘗試使用ppval函數檢查它們時,它們似乎沒有任何意義。

這是一個例子:

x = [1.4771 1.9031 2.3802 2.9031 3.3979]; 
y = [6.1727 5.1242 3.4537 1.8528 0]; 
pp = pchip(x,y); 
xs = linspace(x(1),x(end),200); 
yy = ppval(pp.coefs,xs); 

Error using unmkpp (line 19) 
The input array does not seem to describe a pp function. 

Error in ppval (line 63) 
[b,c,l,k,dd]=unmkpp(pp);` 

誰能幫我找出我在哪裏做錯了什麼?謝謝!

回答

1

不要只是傳遞係數ppval而是由pchip返回的整個結構。
這應該工作:

pp = pchip(x,y); 
xs = linspace(x(1),x(end),200); 
yy = ppval(pp,xs);