interpolate 3 dimensional arrays (in time and space)
Show older comments
Hi all,
I have 3D matrix 180x90x120 which is equal to lonxlatxtime. In space, the data has 1 degree resolution (e.g. longitude ranges from 1 to 180), while the time interval is 3 hours (e.g. 3h, 6h, 9h.....).
Now I want to interpolate data to get a finer resolution of 0.5 degree and with 1-hour interval, so the new matrix would be 360x180x360.
Could you please help?
Thanks
4 Comments
KL
on 28 Aug 2018
wave_buoys
on 28 Aug 2018
No, do not use griddata for this. KL's suggestion of griddedInterpolant was appropriate. See also my second answer.
Now I want to interpolate data to get a finer resolution of 0.5 degree and with 1-hour interval, so the new matrix would be 360x180x360.
Those will not be the new dimensions. If you sample from 1 to 180 at intervals of 0.5, you will obtain 359 points, not 360. Similarly for the other dimensions.
Accepted Answer
More Answers (1)
>> A=rand(180,90,120); B=imresizen(A,[2,2,3]); whos B
Name Size Kilobytes Class Attributes
B 360x180x360 182250 double
2 Comments
wave_buoys
on 28 Aug 2018
Edited: Matt J
on 28 Aug 2018
Matt J
on 28 Aug 2018
How is that different from what you are trying to do?
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!