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 回答