Mercurial > octave-nkf
comparison scripts/general/interp1.m @ 10549:95c3e38098bf
Untabify .m scripts
author | Rik <code@nomad.inbox5.com> |
---|---|
date | Fri, 23 Apr 2010 11:28:50 -0700 |
parents | 45c08d7c2c79 |
children | fbd7843974fa |
comparison
equal
deleted
inserted
replaced
10548:479536c5bb10 | 10549:95c3e38098bf |
---|---|
111 | 111 |
112 if (nargin > 2) | 112 if (nargin > 2) |
113 for i = 1:length (varargin) | 113 for i = 1:length (varargin) |
114 arg = varargin{i}; | 114 arg = varargin{i}; |
115 if (ischar (arg)) | 115 if (ischar (arg)) |
116 arg = tolower (arg); | 116 arg = tolower (arg); |
117 if (strcmp ("extrap", arg)) | 117 if (strcmp ("extrap", arg)) |
118 extrap = "extrap"; | 118 extrap = "extrap"; |
119 elseif (strcmp ("pp", arg)) | 119 elseif (strcmp ("pp", arg)) |
120 pp = true; | 120 pp = true; |
121 else | 121 else |
122 method = arg; | 122 method = arg; |
123 endif | 123 endif |
124 else | 124 else |
125 if (firstnumeric) | 125 if (firstnumeric) |
126 xi = arg; | 126 xi = arg; |
127 firstnumeric = false; | 127 firstnumeric = false; |
128 else | 128 else |
129 extrap = arg; | 129 extrap = arg; |
130 endif | 130 endif |
131 endif | 131 endif |
132 endfor | 132 endfor |
133 endif | 133 endif |
134 | 134 |
135 ## reshape matrices for convenience | 135 ## reshape matrices for convenience |
409 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 409 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
410 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 410 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
411 %!assert (isempty(interp1(xp',yp',[],style))); | 411 %!assert (isempty(interp1(xp',yp',[],style))); |
412 %!assert (isempty(interp1(xp,yp,[],style))); | 412 %!assert (isempty(interp1(xp,yp,[],style))); |
413 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 413 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
414 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 414 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
415 %!assert (interp1(xp,yp,xi,style),... | 415 %!assert (interp1(xp,yp,xi,style),... |
416 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 416 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
417 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 417 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
418 %! interp1(xp,yp,xi,style,"extrap"),10*eps); | 418 %! interp1(xp,yp,xi,style,"extrap"),10*eps); |
419 %!error interp1(1,1,1, style); | 419 %!error interp1(1,1,1, style); |
420 %!assert (interp1(xp,[yp',yp'],xi,style), | 420 %!assert (interp1(xp,[yp',yp'],xi,style), |
421 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); | 421 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); |
422 %!test style=['*',style]; | 422 %!test style=['*',style]; |
423 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 423 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
424 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); | 424 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); |
425 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); | 425 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); |
426 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 426 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
427 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 427 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
428 %!assert (isempty(interp1(xp',yp',[],style))); | 428 %!assert (isempty(interp1(xp',yp',[],style))); |
429 %!assert (isempty(interp1(xp,yp,[],style))); | 429 %!assert (isempty(interp1(xp,yp,[],style))); |
430 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 430 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
431 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 431 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
432 %!assert (interp1(xp,yp,xi,style),... | 432 %!assert (interp1(xp,yp,xi,style),... |
433 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 433 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
434 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 434 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
435 %! interp1(xp,yp,xi,style,"extrap"),10*eps); | 435 %! interp1(xp,yp,xi,style,"extrap"),10*eps); |
436 %!error interp1(1,1,1, style); | 436 %!error interp1(1,1,1, style); |
437 ## ENDBLOCK | 437 ## ENDBLOCK |
438 %!test style='linear'; | 438 %!test style='linear'; |
439 ## BLOCK | 439 ## BLOCK |
440 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 440 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
443 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 443 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
444 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 444 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
445 %!assert (isempty(interp1(xp',yp',[],style))); | 445 %!assert (isempty(interp1(xp',yp',[],style))); |
446 %!assert (isempty(interp1(xp,yp,[],style))); | 446 %!assert (isempty(interp1(xp,yp,[],style))); |
447 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 447 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
448 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 448 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
449 %!assert (interp1(xp,yp,xi,style),... | 449 %!assert (interp1(xp,yp,xi,style),... |
450 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 450 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
451 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 451 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
452 %! interp1(xp,yp,xi,style,"extrap"),10*eps); | 452 %! interp1(xp,yp,xi,style,"extrap"),10*eps); |
453 %!error interp1(1,1,1, style); | 453 %!error interp1(1,1,1, style); |
454 %!assert (interp1(xp,[yp',yp'],xi,style), | 454 %!assert (interp1(xp,[yp',yp'],xi,style), |
455 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); | 455 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); |
456 %!test style=['*',style]; | 456 %!test style=['*',style]; |
457 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 457 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
458 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); | 458 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); |
459 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); | 459 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); |
460 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 460 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
461 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 461 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
462 %!assert (isempty(interp1(xp',yp',[],style))); | 462 %!assert (isempty(interp1(xp',yp',[],style))); |
463 %!assert (isempty(interp1(xp,yp,[],style))); | 463 %!assert (isempty(interp1(xp,yp,[],style))); |
464 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 464 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
465 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 465 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
466 %!assert (interp1(xp,yp,xi,style),... | 466 %!assert (interp1(xp,yp,xi,style),... |
467 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 467 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
468 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 468 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
469 %! interp1(xp,yp,xi,style,"extrap"),10*eps); | 469 %! interp1(xp,yp,xi,style,"extrap"),10*eps); |
470 %!error interp1(1,1,1, style); | 470 %!error interp1(1,1,1, style); |
471 ## ENDBLOCK | 471 ## ENDBLOCK |
472 %!test style='cubic'; | 472 %!test style='cubic'; |
473 ## BLOCK | 473 ## BLOCK |
474 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 474 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
477 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 477 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
478 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 478 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
479 %!assert (isempty(interp1(xp',yp',[],style))); | 479 %!assert (isempty(interp1(xp',yp',[],style))); |
480 %!assert (isempty(interp1(xp,yp,[],style))); | 480 %!assert (isempty(interp1(xp,yp,[],style))); |
481 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 481 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
482 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 482 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
483 %!assert (interp1(xp,yp,xi,style),... | 483 %!assert (interp1(xp,yp,xi,style),... |
484 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 484 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
485 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 485 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
486 %! interp1(xp,yp,xi,style,"extrap"),100*eps); | 486 %! interp1(xp,yp,xi,style,"extrap"),100*eps); |
487 %!error interp1(1,1,1, style); | 487 %!error interp1(1,1,1, style); |
488 %!assert (interp1(xp,[yp',yp'],xi,style), | 488 %!assert (interp1(xp,[yp',yp'],xi,style), |
489 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); | 489 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); |
490 %!test style=['*',style]; | 490 %!test style=['*',style]; |
491 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 491 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
492 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); | 492 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); |
493 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); | 493 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); |
494 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 494 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
495 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 495 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
496 %!assert (isempty(interp1(xp',yp',[],style))); | 496 %!assert (isempty(interp1(xp',yp',[],style))); |
497 %!assert (isempty(interp1(xp,yp,[],style))); | 497 %!assert (isempty(interp1(xp,yp,[],style))); |
498 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 498 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
499 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 499 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
500 %!assert (interp1(xp,yp,xi,style),... | 500 %!assert (interp1(xp,yp,xi,style),... |
501 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 501 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
502 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 502 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
503 %! interp1(xp,yp,xi,style,"extrap"),100*eps); | 503 %! interp1(xp,yp,xi,style,"extrap"),100*eps); |
504 %!error interp1(1,1,1, style); | 504 %!error interp1(1,1,1, style); |
505 ## ENDBLOCK | 505 ## ENDBLOCK |
506 %!test style='pchip'; | 506 %!test style='pchip'; |
507 ## BLOCK | 507 ## BLOCK |
508 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 508 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
511 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 511 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
512 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 512 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
513 %!assert (isempty(interp1(xp',yp',[],style))); | 513 %!assert (isempty(interp1(xp',yp',[],style))); |
514 %!assert (isempty(interp1(xp,yp,[],style))); | 514 %!assert (isempty(interp1(xp,yp,[],style))); |
515 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 515 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
516 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 516 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
517 %!assert (interp1(xp,yp,xi,style),... | 517 %!assert (interp1(xp,yp,xi,style),... |
518 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 518 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
519 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 519 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
520 %! interp1(xp,yp,xi,style,"extrap"),10*eps); | 520 %! interp1(xp,yp,xi,style,"extrap"),10*eps); |
521 %!error interp1(1,1,1, style); | 521 %!error interp1(1,1,1, style); |
522 %!assert (interp1(xp,[yp',yp'],xi,style), | 522 %!assert (interp1(xp,[yp',yp'],xi,style), |
523 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); | 523 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); |
524 %!test style=['*',style]; | 524 %!test style=['*',style]; |
525 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 525 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
526 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); | 526 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); |
527 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); | 527 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); |
528 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 528 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
529 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 529 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
530 %!assert (isempty(interp1(xp',yp',[],style))); | 530 %!assert (isempty(interp1(xp',yp',[],style))); |
531 %!assert (isempty(interp1(xp,yp,[],style))); | 531 %!assert (isempty(interp1(xp,yp,[],style))); |
532 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 532 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
533 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 533 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
534 %!assert (interp1(xp,yp,xi,style),... | 534 %!assert (interp1(xp,yp,xi,style),... |
535 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 535 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
536 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 536 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
537 %! interp1(xp,yp,xi,style,"extrap"),10*eps); | 537 %! interp1(xp,yp,xi,style,"extrap"),10*eps); |
538 %!error interp1(1,1,1, style); | 538 %!error interp1(1,1,1, style); |
539 ## ENDBLOCK | 539 ## ENDBLOCK |
540 %!test style='spline'; | 540 %!test style='spline'; |
541 ## BLOCK | 541 ## BLOCK |
542 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 542 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
545 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 545 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
546 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 546 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
547 %!assert (isempty(interp1(xp',yp',[],style))); | 547 %!assert (isempty(interp1(xp',yp',[],style))); |
548 %!assert (isempty(interp1(xp,yp,[],style))); | 548 %!assert (isempty(interp1(xp,yp,[],style))); |
549 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 549 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
550 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 550 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
551 %!assert (interp1(xp,yp,xi,style),... | 551 %!assert (interp1(xp,yp,xi,style),... |
552 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 552 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
553 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 553 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
554 %! interp1(xp,yp,xi,style,"extrap"),10*eps); | 554 %! interp1(xp,yp,xi,style,"extrap"),10*eps); |
555 %!error interp1(1,1,1, style); | 555 %!error interp1(1,1,1, style); |
556 %!assert (interp1(xp,[yp',yp'],xi,style), | 556 %!assert (interp1(xp,[yp',yp'],xi,style), |
557 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); | 557 %! interp1(xp,[yp',yp'],xi,["*",style]),100*eps); |
558 %!test style=['*',style]; | 558 %!test style=['*',style]; |
559 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); | 559 %!assert (interp1(xp, yp, [min(xp)-1, max(xp)+1],style), [NA, NA]); |
560 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); | 560 %!assert (interp1(xp,yp,xp,style), yp, 100*eps); |
561 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); | 561 %!assert (interp1(xp,yp,xp',style), yp', 100*eps); |
562 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); | 562 %!assert (interp1(xp',yp',xp',style), yp', 100*eps); |
563 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); | 563 %!assert (interp1(xp',yp',xp,style), yp, 100*eps); |
564 %!assert (isempty(interp1(xp',yp',[],style))); | 564 %!assert (isempty(interp1(xp',yp',[],style))); |
565 %!assert (isempty(interp1(xp,yp,[],style))); | 565 %!assert (isempty(interp1(xp,yp,[],style))); |
566 %!assert (interp1(xp,[yp',yp'],xi(:),style),... | 566 %!assert (interp1(xp,[yp',yp'],xi(:),style),... |
567 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); | 567 %! [interp1(xp,yp,xi(:),style),interp1(xp,yp,xi(:),style)]); |
568 %!assert (interp1(xp,yp,xi,style),... | 568 %!assert (interp1(xp,yp,xi,style),... |
569 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); | 569 %! interp1(fliplr(xp),fliplr(yp),xi,style),100*eps); |
570 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), | 570 %!assert (ppval(interp1(xp,yp,style,"pp"),xi), |
571 %! interp1(xp,yp,xi,style,"extrap"),10*eps); | 571 %! interp1(xp,yp,xi,style,"extrap"),10*eps); |
572 %!error interp1(1,1,1, style); | 572 %!error interp1(1,1,1, style); |
573 ## ENDBLOCK | 573 ## ENDBLOCK |
574 ## ENDBLOCKTEST | 574 ## ENDBLOCKTEST |
575 | 575 |
576 %!# test linear extrapolation | 576 %!# test linear extrapolation |