MATLAB Answers

0

Convert values upper triangular matrix into vector

Tim Elbers さんによって質問されました 2019 年 5 月 14 日
最新アクティビティ Jos (10584)
さんによって 編集されました 2019 年 5 月 17 日
Hi all,
Imagine a matrix of the following form:
1 2 3 4 5
0 4 6 8 10
0 0 9 12 15
0 0 0 16 20
0 0 0 0 25
Now i do like to obtain a vector with only the values of the upper triangular matrix. in other words a vector of underneath form.
[1 2 3 4 5 4 6 8 10 9 12 15 16 20 25]
What is the best way to obtain this vector?
Thanks in advance

  0 件のコメント

サインイン to comment.

1 件の回答

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

At = A.';
m = tril(true(size(At)));
v = At(m).'
Maybe this is faster (>=R2016b due to auto-expanding):
At = A.';
m = (1:size(At,1)).' >= (1:size(At,2));
v = At(m);

  2 件のコメント

Andrei Bobrov
2019 年 5 月 17 日
out = nonzeros(A.');
Jos (10584)
2019 年 5 月 17 日
@Andrei. nonzeros does not work when the underlying vector has 0's

サインイン to comment.



Translated by