Main Content

all

すべての配列要素が非ゼロか true かを判定

説明

B = all(A) は、サイズが 1 ではない A の最初の配列の次元に沿ってテストし、要素がすべて非ゼロまたは logical 1 (true) であるかどうかを判別します。実際、all は論理 AND 演算子も自然に拡張したものです。

  • A がベクトルで、すべての要素が非ゼロの場合、all(A) は logical 1 (true) を返します。ベクトルの 1 つ以上の要素がゼロであれば、logical 0 (false) を返します。

  • A が空でない行列である場合、all(A)A の列をベクトルとして扱い、logical 1 および 0 の行ベクトルを返します。

  • A が空の 0 行 0 列の行列である場合、all(A) は logical 1 (true) を返します。

  • A が多次元配列の場合、all(A) は、サイズが 1 でない最初の配列次元に沿って作用し、論理値からなる配列を返します。この次元のサイズは 1 になりますが、他のすべての次元のサイズは同じままです。

B = all(A,'all')A のすべての要素にわたってテストします。この構文は、MATLAB® R2018b 以降で有効です。

B = all(A,dim) は、次元 dim に沿って要素をテストします。dim 入力は、正の整数のスカラーです。

B = all(A,vecdim) はベクトル vecdim に指定された次元に基づいて要素をテストします。たとえば、A が行列の場合、all(A,[1 2])A のすべての要素をテストします。これは、次元 1 と次元 2 で定義された配列スライスに行列内のすべての要素が含まれるためです。

すべて折りたたむ

3 行 3 列の行列を作成し、各列のすべての要素が非ゼロかどうかをテストします。

A = [0 0 3;0 0 3;0 0 3]
A = 3×3

     0     0     3
     0     0     3
     0     0     3

B = all(A)
B = 1x3 logical array

   0   0   1

10 進数の値のベクトルを作成し、0.5 未満の値をテストします。

A = [0.53 0.67 0.01 0.38 0.07 0.42 0.69];
B = (A < 0.5)
B = 1x7 logical array

   0   0   1   1   1   1   0

出力は、論理値のベクトルです。関数 all は、このような logical 値のベクトルを 1 つの条件にまとめます。この例の B = all(A < 0.5) は、logical 0 を返します。

このため、all は特に if ステートメントで便利です。

if all(A < 0.5)

%do something

else

%do something else

end

コードは、矛盾する条件を取る可能性のあるベクトルでなく、単一条件に従って実行されます。

3×7×5 の多次元配列を作成し、その要素のすべてが 3 未満であるかどうかテストします。

A = rand(3,7,5) * 5;
B = all(A(:) < 3)
B = logical
   0

ゼロより大きい要素の配列もテストできます。

B = all(A(:) > 0)
B = logical
   1

構文 A(:) は、A の要素を 1 つの列ベクトルに変換するため、このタイプのステートメントは任意のサイズの配列で使用できます。

3 行 3 列の行列を作成します。

A = [0 0 3;0 0 3;0 0 3]
A = 3×3

     0     0     3
     0     0     3
     0     0     3

dim = 2 を指定して、A の各行がすべて非ゼロ要素かどうかをテストします。

B = all(A,2)
B = 3x1 logical array

   0
   0
   0

3 次元配列を作成し、データの各ページにあるすべての要素 (行と列) がゼロであるかどうかを判別します。

A(:,:,1) = [2 1; 3 5];
A(:,:,2) = [0 0; 0 0];
A(:,:,3) = [-2 9; 4 1];
B = all(A,[1 2])
B = 1x1x3 logical array
B(:,:,1) =

   1


B(:,:,2) =

   0


B(:,:,3) =

   1

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列または多次元配列として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
複素数のサポート: あり

演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 より大きい最初の配列次元です。

2 次元の入力配列 A について考えます。

  • all(A,1) は、A の列の連続する要素に作用し、論理値の行ベクトルを返します。

  • all(A,2) は、A の行の連続する要素に対して有効で、論理値の列ベクトルを返します。

all(A,1) column-wise computation and all(A,2) row-wise computation.

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

次元のベクトル。正の整数のベクトルとして指定します。各要素は入力配列の次元を表します。指定された操作次元の出力の長さは 1 で、その他は同じままです。

2×3×3 の入力配列 A を考えます。この場合、all(A,[1 2]) は、A の各ページの非ゼロ値を示す要素をもつ 1×1×3 の配列を返します。

all(A,[1 2]) collapses the pages of a 2-by-3-by-3 array into a 1-by-1-by-3 array.

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

スカラー、ベクトル、行列または多次元配列として返される logical 配列。all により動作する A の次元のサイズは、B では 1 です。

拡張機能

バージョン履歴

R2006a より前に導入