griddata_perso

PURPOSE ^

GRIDDATA_PERSO - interpolates linearly a profile on a mesh

SYNOPSIS ^

function zp=griddata_perso(index,x,y,u,xp,yp,alpha,beta,gamma);

DESCRIPTION ^

GRIDDATA_PERSO - interpolates linearly a profile on a mesh

   Usage:
      zp=griddata_perso(index,x,y,u,xp,yp,alpha,beta,gamma)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function zp=griddata_perso(index,x,y,u,xp,yp,alpha,beta,gamma);
0002 %GRIDDATA_PERSO - interpolates linearly a profile on a mesh
0003 %
0004 %   Usage:
0005 %      zp=griddata_perso(index,x,y,u,xp,yp,alpha,beta,gamma)
0006 
0007 zp=zeros(length(xp),1);
0008 for n=1:length(xp),
0009    P=[xp(n) yp(n)];
0010    dist=sqrt((x-P(1)).^2+(y-P(2)).^2);
0011    posQ=find(dist==min(dist));
0012    if min(dist)==0,
0013       zp(n)=u(n);
0014    else
0015        posQ=posQ(1);
0016       elems=find(index(:,1)==posQ | index(:,2)==posQ | index(:,3)==posQ);
0017        for i=1:length(elems),
0018          el=elems(i);
0019          if isinpoly(P(1),P(2),x(index(el,:)),y(index(el,:)))==1,
0020             zp(n)=sum((alpha(el,:)).*u(index(el,:))')*P(1)+...
0021             sum((beta(el,:)).*u(index(el,:))')*P(2)+...
0022             sum((gamma(el,:)).*u(index(el,:))');
0023             end
0024       end
0025    end
0026 end

Generated on Sun 29-Mar-2009 20:22:55 by m2html © 2003