How to Interpolate *between* 2D matrices

24 Ansichten (letzte 30 Tage)
Warren
Warren am 31 Jan. 2011
Kommentiert: the cyclist am 12 Feb. 2014
I think this is an easy question, but my attempts so far have been frustrated. I have a series of 2D (1300x1500) regularly spaced matrices (basically change over time). I want to interpolate between these to create additional 2D matrices that will be intermediates between the others. I am sure that griddata3 should be able to do this, but I can't get it to work.
  2 Kommentare
Jos (10584)
Jos (10584) am 12 Feb. 2014
Assume you have two very simple 2D matrices that make up the series
A1 = [2 0 0]
A3 = [0 0 2]
What should an intermediate matrix, A2, look like?
[1 0 1]
[0 2 0]
??
Mahi Nazir
Mahi Nazir am 12 Feb. 2014
Hi Jos This question has been answered.. The new question is in my comment below

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

the cyclist
the cyclist am 31 Jan. 2011
Are you only doing interpolation along the time dimension? I think you should be able to use interp1.
Assuming you have N time slices, then you can first concatenate the arrays you have, then permute (because interp1 has to have interpolated dimension first), then interpolate:
% Your 2D arrays:
x1 = [1 2; 3 4];
x2 = [2 3; 4 5];
% Concatenate:
x = cat(3,x1,x2);
% Permute to get interpolated dimension first:
x = permute(x,[3 1 2])
% Define arbitrary unit for time slices:
t0 = [1 2];
% Interpolate to time slice at t=1.5:
x_interp = interp1(t0,x,1.5)
I see that your input 2D arrays are quite large, so you may need to do this in chunks.
[griddata3 is a deprecated function, and you probably don't want to use it.]
  3 Kommentare
Mahi Nazir
Mahi Nazir am 12 Feb. 2014
Bearbeitet: Mahi Nazir am 12 Feb. 2014
Hi I am also looking for interpolation between 4 matrices but my matrices change along the coordinates (x,y) and NOT along just one dimension t.... Do I need to use interp2? I have to use 4 way interpolation? Kindly help.
Thanks
the cyclist
the cyclist am 12 Feb. 2014
I strongly suggest you open a new question, not bury it within a comment of a 3-year-old, already-answered question, where very few people will see it. (It was a random stroke of luck that I happened to notice this.)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by