私は3 * 3の行列を持っていますA
A = [1 2 3
4 5 6
7 8 9];
この行列の最初の行と列だけを複製したい。次のように見えるはずです
1 1 2 3
1 1 2 3
4 4 5 6
7 7 8 9
誰かがmatlabでこれを行う方法を教えてもらえますか
これは、インデックスを使用するだけの良い方法だと思います
A([1, 1:end], [1, 1:end])
元の行列のさまざまな部分を連結することで、これを行うことができます。
B=[A(1) A(1,:);A(:,1) A];
この式では、A(1) は A の左上の要素、A(1,:) は最初の行、A(:,1) は最初の列です。
コロン演算子のドキュメントを参照してください。
以下のコードでは、A が出発点であり、E が達成したいものだと思います。
もちろん、すべての中間式を組み合わせて、1 つのステップで最終結果を得ることができます。
A= [1 2 3; 4 5 6; 7 8 9]
B= A(1:3,1:1)
C= [B A]
D= C(1:1,1:4)
E= [D;C]
ゲームでは少し遅れていますが、答える価値があります。そのために使用できますpadarray
:
B = padarray(A,[1 1],'replicate','pre')
最初の列と列を1つ以上追加したい場合は、ワンライナーでより一般的です...