필터 지우기
필터 지우기

Correlate through each matrix row

조회 수: 5 (최근 30일)
Elizabeth Yeap
Elizabeth Yeap 2020년 3월 7일
답변: Ameer Hamza 2020년 3월 7일
Hello,
I have the following matrix double_new_WB_prop = [12 74000]. What I want to do is;
  1. Correlate a specific row with 3700 columns with another specific row with 3700 columns.
  2. 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.

답변 (1개)

Ameer Hamza
Ameer Hamza 2020년 3월 7일
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

카테고리

Help CenterFile Exchange에서 Correlation and Convolution에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by