Main Content

all

确定所有的数组元素是为非零还是 true

说明

示例

B = all(A) 沿着大小不等于 1 的数组 A 的第一维测试所有元素为非零还是逻辑值 1 (true)。实际上,all 是逻辑 AND 运算符的原生扩展。

  • 如果 A 为向量,当所有元素为非零时,all(A) 返回逻辑 1 (true),当一个或多个元素为零时,返回逻辑 0 (false)。

  • 如果 A 为非空矩阵,all(A)A 的各列视为向量,返回包含逻辑 10 的行向量。

  • 如果 A 为 0×0 空矩阵,all(A) 返回逻辑 1 (true)。

  • 如果 A 为多维数组,则 all(A) 沿第一个非单一维度运算并返回逻辑值数组。此维的大小将变为 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

创建数值向量并测试哪些值小于 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 函数将逻辑条件的此类向量约简为单一条件。在这种情况下,B = all(A < 0.5) 得出逻辑 0

这使 allif 语句中特别有用。

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

还可以测试数组元素是否大于 0。

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

A(:) 语法将 A 的元素转换成单列向量,因此您可以将此类型语句用于任意大小的数组。

创建一个 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

创建三维数组并确定是否每页数据(行和列)中的所有元素都为零。

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 的数组维度。

以一个二维输入数组 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]) 返回 1×1×3 数组,其元素表示 A 的每个页面的非零值。

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

输出参数

全部折叠

逻辑数组,返回为标量、向量、矩阵或多维数组。all 处理的 A 的维度在B 中的大小为 1

扩展功能

版本历史记录

在 R2006a 之前推出