Correlate through each matrix row
7 views (last 30 days)
Show older comments
Hello,
I have the following matrix double_new_WB_prop = [12 74000]. What I want to do is;
- Correlate a specific row with 3700 columns with another specific row with 3700 columns.
- Repeat for all 12 rows.
% Correlate each row of a variable with rows of another variable
[rows,cols] = size(double_new_WB_prop);
ET_GWP = [];
for j = 1:rows
ET_GWP = corr(double_new_WB_prop(j,1:3700), double_new_WB_prop(j,70301:74000));
end
My problem is that ET_GWP is returning all NAN (not suppose to return this). My code also shows no error.
I don't know where I'm going wrong and it would helpful if someone could point out what I'm doing wrong.
Thank you.
0 Comments
Answers (1)
Ameer Hamza
on 7 Mar 2020
Since you are trying to find the correlation between two one dimensional vectors, you should use corrcoef instead of corr.
Also, the value of ET_GWP is discarded in each iteration. One solution is to create a cell array to save all values.
% Correlate each row of a variable with rows of another variable
[rows,cols] = size(double_new_WB_prop);
ET_GWP = [];
for j = 1:rows
ET_GWP{j} = corrcoef(double_new_WB_prop(j,1:3700), double_new_WB_prop(j,70301:74000)');
end
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!