MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

vectorization of symmetrical matrix with off-diagonal vectors multiplied with 2

Tim Elbers さんによって質問されました 2019 年 5 月 14 日
最新アクティビティ Tim Elbers さんによって 編集されました 2019 年 5 月 20 日 8:46
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 件のコメント

サインイン to comment.

2 件の回答

回答者: Andrei Bobrov
2019 年 5 月 14 日
編集済み: Andrei Bobrov
2019 年 5 月 14 日
 採用された回答

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 件のコメント

サインイン to comment.


回答者: Tim Elbers 2019 年 5 月 20 日 8:45
編集済み: Tim Elbers 2019 年 5 月 20 日 8:46

Thank you,
i have an aditional question,
which is like the same problem but than reversed.
if i have obtained the vector .
1 2*6 2*7 2*8 2*9 2*10 2*11 2*12 3 2*13 2*14 4 2*15 5
how could i obtain the same symatrical matrix of underneath form if only this vector is given.
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
Thanks in advance

  0 件のコメント

サインイン to comment.



Translated by