Correlation between two matrices with different number of rows and columns

29 次查看(过去 30 天)
I have two matrices of different sizes. I want to calculate the spatial correlation between the two matrices but the matrices are of different sizes. Let's say matrix A of 119*177 size represent the ice drift and matrix B of size 760 *1120, But both data represent the same area at different spatial resolution. What is the best way to calculate the spatial correlation between the two.
  1 个评论
Zsófia Jólesz
Zsófia Jólesz 2020-11-11
I know it's been a while since you asked this, but is anyone here who knows how to make a C program for this? I think I have the program to calculate the correlation between two matrices with the same size, I just don't know how to overwrite this program to be able to count the corr. between different sized matrices.

请先登录,再进行评论。

回答(3 个)

ANKUR KUMAR
ANKUR KUMAR 2017-10-29
编辑:ANKUR KUMAR 2017-10-29
Try interpolating it in between point to make them into the same dimension. 119*177 size represent the ice drift and matrix B of size 760 *1120 For example. try making your A matrix into the dimension of 760 * 1120. A having dimension 119*177. For the simplicity, lets say U*V
U1=linspace(min(U),max(U),760);
V1=linspace(min(U),max(V),1120);
Not interpolate these two new sets with the previous one. Example
A1=interp2(U,V,A,U1,V1)
It gives the output A1 having dimension 760*1120. Now you can easily use
corr2(A1,B)
It works, because both have the same dimension.

KSSV
KSSV 2017-6-27
A = rand(119,177) ;
B = rand(760,1120) ;
%%Resize the matrices
% resize B to size of A
B = imresize(B,size(A)) ;
% Get corellation
r = corr2(A,B) ;

Andrei Bobrov
Andrei Bobrov 2017-7-5
[m,n] = size(A);
[m1,n1] = size(B);
GI = griddedInterpolant({(1:m)',1:n},A);
AasB = GI({linspace(1,m,m1)',linspace(1,n,n1)});
r = corr2(B,AasB) ;

Community Treasure Hunt

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

Start Hunting!

Translated by