ERROR in cubic spline interpolation

I have tried this code a thousand times but I get the same error always.
x = [0 0.0901 0.1803 0.2704 0.3606 0.4507 0.5408 0.6310 0.7211 0.8112 0.9014 0.9915 1.0817 1.1718 1.2619 1.3521 1.4422 1.5323 1.6225 1.7126 1.8028 1.8929 1.9830 2.0732 2.1633 2.2534 2.3436 2.4337 2.5239 2.6140 2.7041 2.7943 2.8844 2.9746 3.0647 3.1548 3.2450 3.3351 3.4252 3.5154 3.6055 3.6957 3.7858 3.8759 3.9661 4.0562 4.1463 4.2365 4.3266 4.4168];
y = [ 0 0.0008 0.0031 0.0070 0.0125 0.0195 0.0280 0.0380 0.0496 0.0627 0.0773 0.0934 0.1111 0.1303 0.1512 0.1737 0.1978 0.2236 0.2510 0.2797 0.3095 0.3396 0.3690 0.3965 0.4202 0.4382 0.4488 0.4509 0.4441 0.4292 0.4078 0.3818 0.3529 0.3227 0.2924 0.2627 0.2340 0.2066 0.1804 0.1556 0.1323 0.1104 0.0900 0.0712 0.0540 0.0385 0.0249 0.0135 0.0044 0];
z=linspace(0,1,50);
pp=spline(x,y);
yy=ppval(pp,z);
ERROR : ??? Error using ==> histc Edge vector must be monotonically non-decreasing.
Error in ==> ppval at 67 if lx, [~,index] = histc(xs,[-inf,b(2:l),inf]);
Please help !!!

回答(1 个)

I copied and pasted and had no error whatsoever:
x = [0 0.0901 0.1803 0.2704 0.3606 0.4507 0.5408 0.6310 0.7211 0.8112 0.9014 0.9915 1.0817 1.1718 1.2619 1.3521 1.4422 1.5323 1.6225 1.7126 1.8028 1.8929 1.9830 2.0732 2.1633 2.2534 2.3436 2.4337 2.5239 2.6140 2.7041 2.7943 2.8844 2.9746 3.0647 3.1548 3.2450 3.3351 3.4252 3.5154 3.6055 3.6957 3.7858 3.8759 3.9661 4.0562 4.1463 4.2365 4.3266 4.4168];
y = [ 0 0.0008 0.0031 0.0070 0.0125 0.0195 0.0280 0.0380 0.0496 0.0627 0.0773 0.0934 0.1111 0.1303 0.1512 0.1737 0.1978 0.2236 0.2510 0.2797 0.3095 0.3396 0.3690 0.3965 0.4202 0.4382 0.4488 0.4509 0.4441 0.4292 0.4078 0.3818 0.3529 0.3227 0.2924 0.2627 0.2340 0.2066 0.1804 0.1556 0.1323 0.1104 0.0900 0.0712 0.0540 0.0385 0.0249 0.0135 0.0044 0];
z=linspace(0,1,50);
pp=spline(x,y);
yy=ppval(pp,z)

类别

帮助中心File Exchange 中查找有关 Splines 的更多信息

标签

提问:

2013-12-21

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by