Home > fcn > fastinterp1.m

fastinterp1

PURPOSE ^

y2=fastinerp1(x1,y1,x2) replica of matlab interp1 function

SYNOPSIS ^

function y2 = fastinterp1(x1,y1,x2);

DESCRIPTION ^

 y2=fastinerp1(x1,y1,x2) replica of matlab interp1 function 
 assume linear interpolation, 
 assume sorted data, 
 assume vector x inputs, vector or matrix y1 input (columns are datapoints). 
 assume small sized vectors x
 assume no tricks (x2 within interval of existing data x1)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function y2 = fastinterp1(x1,y1,x2);
0002 
0003 % y2=fastinerp1(x1,y1,x2) replica of matlab interp1 function
0004 % assume linear interpolation,
0005 % assume sorted data,
0006 % assume vector x inputs, vector or matrix y1 input (columns are datapoints).
0007 % assume small sized vectors x
0008 % assume no tricks (x2 within interval of existing data x1)
0009 
0010 N1=length(x1);
0011 N2=length(x2);
0012 M=size(y1,1);
0013 x1=x1(:)'; x2=x2(:)';
0014 x2=max(min(x1),min(max(x1),x2));
0015 
0016 d1=max(1,min(N1,sum(repmat(x1',[1,N2])<=repmat(x2,[N1,1]),1)));
0017 d2=max(1,min(N1,d1+1));
0018 r1=abs(x2-x1(d1))./(eps+abs(x1(d2)-x1(d1)));
0019 y2=y1(:,d1).*repmat(1-r1,[M,1]) + y1(:,d2).*repmat(r1,[M,1]);
0020 
0021 
0022

Generated on Tue 27-Mar-2007 12:06:24 by m2html © 2003