Reduce Matrix size with interpolated data arrays

10 次查看(过去 30 天)
Hi,
I have a 360*720 precipitation matrix with values in milimeter, and i desire a 180*360 matrix with interpolated data to compare my precipitation with other 180*360 data.
here you can see the original 360*720 plot of my data. please help me on this.
Thank you.

采纳的回答

Mathieu NOE
Mathieu NOE 2021-3-10
hello
simply use a 2D interpolation with the appropriate new Xq and Yq vectors
interp2 2-D interpolation (table lookup).
Vq = interp2(X,Y,V,Xq,Yq) interpolates to find Vq, the values of the
underlying 2-D function V at the query points in matrices Xq and Yq.
Matrices X and Y specify the points at which the data V is given.
  2 个评论
Benyamin Nemati
Benyamin Nemati 2021-3-11
Thanks for response,
what is V function here ? I just have a matrix and want to reach to another matrix, i dont get the V function.
Mathieu NOE
Mathieu NOE 2021-3-11
V is not a function, it's the Z values
read the help / doc of interp2

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2021-3-11
The mean over neighboring rows and columns is smarter than a linear interpolation, which just omits the intermediate rows and columns:
x = rand(360, 720);
y = x(1:2:end, :) + x(2:2:end, :);
z = (y(:, 1:2:end) + y(:, 2:2:end)) / 4;

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by