Programming and Data Types | ![]() ![]() |
空行列
少なくとも1つの次元がゼロに等しい行列は、空行列 と呼ばれます。最もシンプルな空行列は、0行0列です。より複雑な行列の例は、0
行5
列、あるいは10
-by-0
-by-20
です。
0行0列行列を作成するには、値を指定せずに鍵括弧を利用します。
A = []; whos A Name Size Bytes Class A 0x0 0 double array
関数zeros
, ones
, rand
, eye
を使って、他のサイズの空配列を作成できます。たとえば、0行5列行列を作成するには、つぎのようにします。
E = zeros(0,5)
空行列に対する演算
空行列に関する基本的なモデルは、m
行n
列の行列に対し設定される任意の演算で、m
とn
が結果の次元で、m
または n
のどちらかがゼロでも可能です。結果の大きさは、同じ関数で計算したものと同じで、結果の内容がゼロで見積もられたものです。
C = [A B]
は、A
とB
の行数が等しいことが必要です。それで、A
がm
行n
列で、B
がm
行p
列ならば、C
はm行(n+
p列になります)。これは、m
、n
、p
のいずれかがゼロでも成り立ちます。
MATLABの中のほとんどの演算は、行ベクトルまたは列ベクトルを生みます。これは、結果が空行ベクトルになる場合も可能です。
r = zeros(1,0)
C = zeros(0,1)
も可能です。MATLAB の中のすべての行列を使って、次元に関する整合性に関するルールが成り立ちます。つぎの例題の中で、1行3列の行列を0行3列の空行列を付加しようとする試みは、エラーになります。
[1 2 3] + ones(0,3) ??? Error using ==> + Matrix dimensions must agree.
sum
やmax
のようなMATLAB関数は、次元を減らす機能をもっています。行列を引数とすると、これらの関数は、結果をベクトルとして出力します。また、ベクトルを入力すると、スカラを出力します。空を入力すると、つぎのような結果になります。
sum
([ ]) is 0
prod
([ ]) is 1
max
([ ]) is [ ]min
([ ]) is [ ]If または Whileと空行列の利用
if
またはwhile
ステートメントの式部分が空行列になる場合は、MATLABは式をfalse
として評価します。つぎの例は、A
が空配列なのでステートメントS0
を実行します。
A = ones(25,0,4); if A S1 else S0 end
![]() | コマンド/関数の双対性 | エラーとワーニング | ![]() |