function yi = interpolate(x,y,xi) Ndim = size(y,1); if any(xi < x(1)) || any(xi > x(end)) error('extrapolation needed'); end yi = zeros(Ndim,length(xi)); for i=1:length(xi) ind1 = find(x<=xi(i),1,'last'); if ind1 == length(x) ind1 = ind1-1; end ind2 = ind1 + 1; yi(:,i) = y(:,ind1) + (y(:,ind2) - y(:,ind1))*(xi(i)-x(ind1))/(x(ind2)-x(ind1)); end