vectorization of symmetrical matrix with off-diagonal vectors multiplied with 2
1 view (last 30 days)
Show older comments
Hi all,
I want to vectorize a matrix H. However the matrix H is symetric in the off-diagonal entries. The off diagonal entries on the to disired vector have the value of 2*H(ij).
imagine H as:
H =
1 6 7 8 9
6 2 10 11 12
7 10 3 13 14
8 11 13 4 15
9 12 14 15 5
than, the to desired vector has the following form. if H is nxn matrix. the vector should have dimensions n(n+1)/2 with the off-diagonal vectors 2*H(ij) like
1 2*6 2*7 2*8 2*9 2*10 2*11 2*12 3 2*13 2*14 4 2*15 5
What is the best way to solve this problem?
0 Comments
Accepted Answer
Andrei Bobrov
on 14 May 2019
Edited: Andrei Bobrov
on 14 May 2019
k = 2;
o = ones(size(H));
Hl = H.*(tril(o,-1)*(k-1) + 1);
out = Hl(tril(o)>0);
or
e = H.*((k-1)*(1-eye(size(H))) + 1);
out = e(tril(e) > 0);
0 Comments
More Answers (1)
See Also
Categories
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!