标签: matlab triangular
我想从矩阵中获取上三角形。 MATLAB具有函数tril和triu,不幸的是它们给出了错误的三角形。我正在寻找下面的三角形,是否有命令或者它必须是一个循环?如果是这样,它看起来如何?
tril
triu
test=[1 1 1; 1 1 0; 1 0 0];
答案 0 :(得分:1)
您需要手动执行此操作。有几种方法:
在应用tril:
flipud
M = magic(3); % example matrix result = flipud(tril(flipud(M)));
使用bsxfun创建适当的掩码:
bsxfun
M = magic(3); % example matrix result = M .* (bsxfun(@plus, (1:size(M,1)).', 1:size(M,2)) <= size(M,1)+1);
上述任何一项
>> M M = 8 1 6 3 5 7 4 9 2 >> result result = 8 1 6 3 5 0 4 0 0