Main Content

any

任意の配列要素が非ゼロかどうかを判断

説明

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

  • A がベクトルのとき、A の任意の要素が非ゼロの数値または logical 1 である場合、B = any(A) は logical 1 (true) を返します。すべての要素がゼロの場合、logical 0 (false) を返します。

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

  • A が空の 0 行 0 列の場合、any(A) は logical 0 (false) を返します。

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

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

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

B = any(A,vecdim) はベクトル vecdim に指定された次元に基づいて要素をテストします。たとえば、A が行列の場合、any(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 = any(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

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

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

if any(A < 0.5)

%do something

else

%do something else

end

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

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

A = rand(3,7,5) * 5;
B = any(A(:) > 3)
B = logical
   1

ゼロ未満の要素の配列もテストできます。

B = any(A(:) < 0)
B = logical
   0

構文 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 = any(A,2)
B = 3x1 logical array

   1
   1
   1

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

A(:,:,1) = [2 0; 0 0];
A(:,:,2) = [0 0; 0 0];
A(:,:,3) = [0 0; 0 1];
B = any(A,[1 2])
B = 1x1x3 logical array
B(:,:,1) =

   1


B(:,:,2) =

   0


B(:,:,3) =

   1

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列または多次元配列として指定します。関数 any は、NaN (非数) である A の要素を無視します。

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

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

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

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

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

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

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

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

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

any(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 配列。any により動作する A の次元のサイズは、B では 1 です。

拡張機能

バージョン履歴

R2006a より前に導入