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