MxM correlation Matrix output
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Evans Gyan
le 23 Nov 2018
Commenté : Evans Gyan
le 23 Nov 2018
Given a vector
Vec = [ 0 1 2 3 4 5 6 7 8 9 ]
I want to use the vec value to obtain a matrix output as
0 1 2 3 4 5 6 7 8 9
1 0 1 2 3 4 5 6 7 8
2 1 0 1 2 3 4 5 6 7
3 2 1 0 1 2 3 4 5 6
mat = 4 3 2 1 0 1 2 3 4 5
5 4 3 2 1 0 1 2 3 4
6 5 4 3 2 1 0 1 2 3
7 6 5 4 3 2 1 0 1 2
8 7 6 5 4 3 2 1 0 1
9 8 7 6 5 4 3 2 1 0
Your input is highly appreciated. Thanks in advance
0 commentaires
Réponse acceptée
Plus de réponses (1)
John D'Errico
le 23 Nov 2018
Modifié(e) : John D'Errico
le 23 Nov 2018
What does that even remotely have to do with a covariance matrix? :)
Now, IF your goal really is just to create that array, then try this:
vec = 0:9;
abs(vec - vec')
ans =
0 1 2 3 4 5 6 7 8 9
1 0 1 2 3 4 5 6 7 8
2 1 0 1 2 3 4 5 6 7
3 2 1 0 1 2 3 4 5 6
4 3 2 1 0 1 2 3 4 5
5 4 3 2 1 0 1 2 3 4
6 5 4 3 2 1 0 1 2 3
7 6 5 4 3 2 1 0 1 2
8 7 6 5 4 3 2 1 0 1
9 8 7 6 5 4 3 2 1 0
The above will work as long as you are using at least R2016b or MATLAB. Older releases will require tools like bsxfun, or even meshgrid.
It is a bit unclear because again, this has nothing to do with a covariance matrix, except that both are symmetric matrices.
0 commentaires
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!