No BSD License  

Highlights from
Numerical Analysis and Graphic Visualization with MATLAB

GC_inter(s_lev,i1,j1,i2,j2,x_grid, y_grid,fun)
% GC_inter is called by g_cont.
% Interpolates function on a generalized grid.
% Copyright S. Nakamura, 1995
function [x_,y_] = GC_inter(s_lev,i1,j1,i2,j2,x_grid, y_grid,fun)
  if abs(fun(i1,j1) - s_lev) < 1.0e-5 &  ...
    abs(fun(i2,j2) - s_lev) < 1.0e-5
    x_ = (x_grid(i1,j1) + x_grid(i2,j2))/2;
    y_ = (y_grid(i1,j1) + y_grid(i2,j2))/2;
  else
    a  =  (fun(i2,j2) - s_lev)/(fun(i2,j2) - fun(i1,j1));
%   if  a<0 | a>1, a, end
    b  =  1-a;
    x_ =  x_grid(i1,j1)*a + x_grid(i2,j2)*b;
    y_ =  y_grid(i1,j1)*a + y_grid(i2,j2)*b;
  end
return

Contact us at files@mathworks.com