MATLAB Answers

Allie
0

Running correlations between two matrices

Asked by Allie
on 30 Jan 2019
Latest activity Answered by Allie
on 30 Jan 2019
I have two 982x10,000 matrices (matrix A and B). I would like to calculate 60 year running correlations between corresponding columns (e.g. A(1) and B(1), A(2) and B(2), etc.). I can easily do this one at a time using the following code however, I can't find an effective way to apply the running correlation to each successive column.
for i=1:982
z(i,1)=corr(A(i:i+59,1),B(i:i+59,1))
end
I have tried the code below but this produces error messages. What is a good way to do this?
for i=1:982
z(i,:)=corr(A(i:i+59,:),B(i:i+59,:));
end

  0 Comments

Sign in to comment.

2 Answers

Answer by Kevin Phung on 30 Jan 2019
 Accepted Answer

Have you tried adding another forloop for the columns?
for i=1:982
for j = 1:10000
z(i,1)=corr(A(i:i+59,j),B(i:i+59,j))
end
I dont know what corr() returns, so you might have to adjust your z() output.
Also, your row indices are going to go out of bound. for example, at max i = 982,
you will be looking at rows 982:982+59 for your A and b matrices (which do not exist)

  0 Comments

Sign in to comment.


Answer by Allie
on 30 Jan 2019

This worked. Thank you

  0 Comments

Sign in to comment.