Create a single variable to store multiple correlation coefficients
조회 수: 3 (최근 30일)
이전 댓글 표시
I have a 300x7 matrix (A) and a 1x300 row vector (B). How do I calculate the CC for each of the 7 columns in A against the single row in B and store them in a single variable?
댓글 수: 0
답변 (2개)
John D'Errico
2023년 3월 30일
A = rand(300,7);
B = rand(1,300);
C = corrcoef([A,B']);
C = C(8,1:7)
The correlation coefficiens of each column of A, against B are given in C; Admittedly, if the array A had many columns, then the above is wasteful in terms of CPU cycles. So I could also have done this:
C2 = (B-mean(B))/norm(B-mean(B))*normalize(A - mean(A),1,'norm')
As you can see, the results are the same.
댓글 수: 0
Luca Ferro
2023년 3월 30일
편집: Luca Ferro
2023년 3월 30일
this would do the trick and store the correlation values in a 300x7 matrix
for rr=1:size(AA,1)
for cc=1:size(AA,2)
CC(rr,cc)=corrcoef(A(rr,cc),B(1,rr));
end
end
The order of the matrix follows the order of A, meaning that CC(1,1) is the correlation of A(1,1) and B(1), and so on
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!