Correlation using for loop
이전 댓글 표시
Dear all,
I have 2 matrices, M_ET [3700 12] and M_Compiled [7400 12]. Using a for loop, I want to do the following:
- Correlate [100 12] of M_ET with [100 12] M_Compiled to get [1 12] of values stored in C_ET.
- Repeat 1. for the remaining rows of M_ET and M_Compiled, where rows increase by 100.
C_ET(1,:) = diag(corr(M_ET(1:100,:), M_Compiled(1:100,:)));
C_ET(2,:) = diag(corr(M_ET(101:200,:), M_Compiled(101:200,:)));
C_ET(3,:) = diag(corr(M_ET(201:300,:), M_Compiled(201:300,:)));
My C_ET should therefore be [74 12]. However, my C_ET is instead giving me [1 12]. Any help is greatly appreciated. Thank you.
% M_ET = [3700 12]
% M_Compiled = [7400 12]
% C_ET = [37 12]
for row = 1:100:7400
for r = 1:100:3700
row1 = row;
row2 = row + 99;
r1 = r;
r2 = r1 + 99;
C_ET(:,:) = diag(corr(M_ET(r1:r2,:), M_Compiled(row1:row2,:)));
end
end
댓글 수: 4
Steve Eddins
2021년 1월 11일
I'm not sure specifically what you are trying to compute, but I noticed something odd about your loops. The matrix C_ET is being completely and independently replaced each time through the loops. The result will be that only the final trip through the inner loop body has any effect.
Elizabeth Yeap
2021년 1월 11일
KALYAN ACHARJYA
2021년 1월 11일
If you describe the question with a sample example, it will be easier to answer.
- What do you have?
- What are you trying to do?
Elizabeth Yeap
2021년 1월 11일
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!