Running correlations between two matrices
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Kevin Phung
2019-1-30
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 个评论
更多回答(1 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!