Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: how to make input size the same as output in interp2
Replies: 4   Last Post: May 4, 2013 6:48 AM

 Messages: [ Previous | Next ]
 hanciong awesome Posts: 21 Registered: 1/11/12
how to make input size the same as output in interp2
Posted: Jan 25, 2013 12:34 PM

Hello all, I have a problem. I have the following scipt to make 2D interpolation of some function fu(x,y) = x^2y-y^2x. There is no problem if both x and y are scalars. However, if I call fuint with x scalar and y row vector for example, the output is column vector. also, if I call fuint with x column vector and y scalar, the output is row vector. see the two lines in which I write comment %-->problem here. The problem is that, quadgk can't integrate @(y) fuint(3,y), because input size is not the same as output. how should I modify this such that the size of the output is the same as input, if either x or y is scalar? Thanx ==========================================

clear all

xcoba = linspace(-5,5,50); ycoba = linspace(-5,5,50);

fu = @(x,y) x.^2.*y - y.^2.*x;

[xgrid,ygrid] = ndgrid(xcoba,ycoba);

fugrid = fu(xgrid,ygrid);

fuint = @(x,y) interp2(xgrid',ygrid',fugrid',x,y,'cubic',NaN);

fuint(1,[2,3,4]) %--> problem here

fuint([2;3;4],1) %--> problem here