MxM correlation Matrix output
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Evans Gyan
am 23 Nov. 2018
Kommentiert: Evans Gyan
am 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 Kommentare
Akzeptierte Antwort
Weitere Antworten (1)
John D'Errico
am 23 Nov. 2018
Bearbeitet: John D'Errico
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!