让a
成为矩阵。如果下三角形部分中没有0元素,则下面的代码将它的下三角部分转移到矢量中。
a(find(tril(a,-1)))
那么,如果a
的下三角部分有一些0元素,我该怎么办?非常感谢您的时间和关注。
答案 0 :(得分:4)
使用mask
-
%// Mask of lower triangular elements
mask = tril(true(size(a)),-1)
%// Use mask to select lower triangular elements from input array
out = a(mask)
或者,您可以使用bsxfun
-
mask = bsxfun(@gt,[1:size(a,1)]',1:size(a,2))
示例运行 -
>> a
a =
1 3 0 2 1
0 1 1 3 1
0 2 2 1 2
3 0 1 3 2
3 3 3 0 3
>> out
out =
0
0
3
3
2
0
3
1
3
0