Create a single variable to store multiple correlation coefficients
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (2)
John D'Errico
le 30 Mar 2023
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 commentaires
Luca Ferro
le 30 Mar 2023
Modifié(e) : Luca Ferro
le 30 Mar 2023
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 commentaires
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!