行列サイズを拡張する
既存の行列の存在しない領域の要素に代入を行うと、行列のサイズが自動的に拡張されます。 下記の例では、2x2 の行列に対して、(4,4) の位置に値を代入する操作をしています。
>> A = [1 2; 3 4]
A =
1 2
3 4
>> A(4, 4) = 7
A =
1 2 0 0
3 4 0 0
0 0 0 0
0 0 0 7
上記のように、行列のサイズは自動的に拡張されて、4x4 になります。 自動的に拡張されて、値が指定されていない部分の値は 0 が設定されます。
ベクトルのサイズも同様に拡張できます。
>> v = 1:3
v =
1 2 3
>> v(7) = 100
v =
1 2 3 0 0 0 100
もちろん、下記のように行列を結合した場合も、行列のサイズは自動的に拡張されることになります。
>> v = [1 2; 3 4]
v =
1 2
3 4
>> v = [v [5 6]']
v =
1 2 5
3 4 6
行列のサイズを縮小する
行列から部分行列を抽出すれば、行列のサイズを縮小したものとして扱うことができます。 下記の例では、ランダムに作成した 5x5 の行列から、3x3 の部分行列を抽出して、自分自身に書き戻しています。
>> A = floor(rand(5)*10) % 0~9 のランダム値で 5x5 行列を生成
A =
6 5 9 6 7
8 8 4 7 4
2 2 3 1 4
3 4 0 3 0
9 6 7 9 3
>> A = A(1:3, 1:3)
A =
6 5 9
8 8 4
2 2 3