通常、行列は複数の次元から成りますが、空行列は1つ以上の次元はゼロになります。
言い換えると、空行列は、必ず複数の次元を持たないことを意味します。
実際に表現することは難しいですが、記述上有効活用可能です。
最も単純な 0x0 の行列を MATLAB で [] と表現し、
double 型のその他の空行列を zeros 関数を用いて記述できます。
よく利用される用途として、
(1)配列の要素の削除および
(2)動的にサイズを変化する変数(次元)の初期化
が挙げられます。特に(2) の初期化に関しまして、
配列の全ての次元のサイズが事前に分かっている場合、
zeros で事前割り当てを行うことが通例と思いますが、
(while 分などで動的に決まる場合など)そうでない場合もありますので、
そのような場合においてから行列を利用することがあります。
%
A = (1:9)
A(2) = []
% 結果:
% A =
% 1 3 4 5 6 7 8 9
%
rng default
B = zeros(2, 0);
count = 0;
while count < 10 % ここでは 10 としていますが、計算の結果で決まる場合などサイズが変更される想定になります
B = [B, randi([0, 10], 2, 1)];
count = count + 1;
end
% 結果:
% B =
% 8 1 6 3 10 1 10 8 4 8
% 9 10 1 6 10 10 5 1 10 10