行列 A があり、行列 を取得したいとします[A 0; 0 1]
。これを行うための組み込み関数はありますか?
私の行列が の場合、私は[2 3; 1 4]
戻ってきます[2 3 0; 1 4 0; 0 0 1]
行列 A があり、行列 を取得したいとします[A 0; 0 1]
。これを行うための組み込み関数はありますか?
私の行列が の場合、私は[2 3; 1 4]
戻ってきます[2 3 0; 1 4 0; 0 0 1]
最も簡単な方法は次のとおりです。
newA = A;
newA(end+1,end+1) = 1;
これは、割り当てのために配列の外側にインデックスを付けることができるためend
、最後の要素 (ここでは行と列) を示し、配列を大きくするときに Matlab がゼロでパディングするためです。を成長させたいだけなら、もちろんA
の作成をスキップすることもできますnewA
。
このような問題には常に行列連結を使用します
あなたの例では:
A = [2 3; 1 4]
A = [A A(:,1)*0; A(1,:)*0 1]
生産する
A =
2 3 0
1 4 0
0 0 1
このトリックの良い点は、非常に柔軟で、あらゆる種類の変換を非常に簡単に実行できることです。例えば
A = [2 3; 1 4]
A = [1 A(1,:)*0; A(:,1)*0 A]
生産する
A =
1 0 0
0 2 3
0 1 4