MATLAB Answers

0

How to do 2D array interpolation

Asked by Pranjal Pathak on 26 May 2013
Latest activity Edited by Bruno Luong
on 13 Sep 2019 at 21:04
Hi, I have a 2d array of values of dimension 4x4, and I would like to do a bilinear interpolation upto a dimension of 1024x1024. I would be very grateful, if anyone helps me in this regard.
The 2d array is:
A=[0.0169 0.5876 0.4689 1.0000;
0.5989 0.6525 0.3475 0.3559;
0.5706 0.6525 0.3814 0.3616;
0 0.5537 0.4011 0.8644];
Thanking You!

  0 Comments

Sign in to comment.

1 Answer

Matt J
Answer by Matt J
on 26 May 2013

x=linspace(1,4,1024);
F=griddedInterpolant(A);
result=F({x,x});

  5 Comments

Did this work?
Walter Roberson
on 13 Sep 2019 at 20:58
griddedInterpolant() itself needs at least R2011b.
In particularly old versions of MATLAB it might be necessary to use meshgrid() to construct the arrays of query locations.
[X, Y] = meshgrid(x, x);
result = interp2(A, X, Y);
Bruno Luong
on 13 Sep 2019 at 21:00
Yes. Quite obscure, it took me few seconds to figure it out Matt's compact code, but it works
x = linspace(1,4,1024);
result = interp2(A,x(:),x)

Sign in to comment.