0
行列から上三角形を取得したい。 MATLABは関数tril
とtriu
を持っていますが、残念ながらそれらは間違った三角形を与えます。次の三角形を探しています。コマンドがありますか、それともループでなければなりませんか?もしそうなら、それはどのように見えるのですか?Matlabの上三角形を得る
test=[1 1 1; 1 1 0; 1 0 0];
行列から上三角形を取得したい。 MATLABは関数tril
とtriu
を持っていますが、残念ながらそれらは間違った三角形を与えます。次の三角形を探しています。コマンドがありますか、それともループでなければなりませんか?もしそうなら、それはどのように見えるのですか?Matlabの上三角形を得る
test=[1 1 1; 1 1 0; 1 0 0];
手動で行う必要があります。いくつかの方法があります。
使用flipud
は前垂直反転し、tril
を適用した後にする:
M = magic(3); % example matrix
result = M .* (bsxfun(@plus, (1:size(M,1)).', 1:size(M,2)) <= size(M,1)+1);
どれ:
M = magic(3); % example matrix
result = flipud(tril(flipud(M)));
使用bsxfun
は適切なマスクを作成します上記のうち
>> M
M =
8 1 6
3 5 7
4 9 2
>> result
result =
8 1 6
3 5 0
4 0 0
ありがとうございました。私はこれが将来のバージョンで開発されることを願っています。 – Orongo