0

MATLAB で pchip 補間を実行しようとしています。補間は正常に機能しますが、ppval 関数を使用して (プロット用に) 曲線をチェックすると、エラー メッセージが表示され、何が問題なのかわかりません。

以前に pchip 関数を次のように使用したことがあります: yi = 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);`

私が何か間違ったことをしている場所を理解するのを手伝ってくれる人はいますか? ありがとう!

4

1 に答える 1

1

に係数を渡すだけでppvalなく、 によって返される構造全体を渡しpchipます。
これはうまくいくはずです:

pp = pchip(x,y);
xs = linspace(x(1),x(end),200);
yy = ppval(pp,xs);
于 2013-07-31T17:50:33.830 に答える