MATLAB 帮助中心
确定所有的数组元素是为非零还是 true
true
B = all(A)
B = all(A,'all')
B = all(A,dim)
B = all(A,vecdim)
B = all(A) 沿着大小不等于 1 的数组 A 的第一维测试所有元素为非零还是逻辑值 1 (true)。实际上,all 是逻辑 AND 运算符的原生扩展。
B
A
1
all
如果 A 为向量,当所有元素为非零时,all(A) 返回逻辑 1 (true),当一个或多个元素为零时,返回逻辑 0 (false)。
all(A)
0
false
如果 A 为非空矩阵,all(A) 将 A 的各列视为向量,返回包含逻辑 1 和 0 的行向量。
如果 A 为 0×0 空矩阵,all(A) 返回逻辑 1 (true)。
如果 A 为多维数组,则 all(A) 沿第一个非单一维度运算并返回逻辑值数组。此维的大小将变为 1,而所有其他维的大小保持不变。
示例
B = all(A,'all') 对 A 的所有元素进行测试。此语法适用于 MATLAB® R2018b 及更高版本。
'all'
B = all(A,dim) 沿着 dim 维测试元素。dim 输入是一个正整数标量。
dim
B = all(A,vecdim) 根据向量 vecdim 中指定的维度测试元素。例如,如果 A 是矩阵,则 all(A,[1 2]) 对 A 中的所有元素进行测试,因为矩阵的每个元素均包含在由维度 1 和 2 定义的数组切片中。
vecdim
all(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 = 1×3 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 = 1×7 logical array 0 0 1 1 1 1 0
输出是逻辑值向量。all 函数将逻辑条件的此类向量约简为单一条件。在这种情况下,B = all(A < 0.5) 得出逻辑 0。
B = all(A < 0.5)
这使 all 在 if 语句中特别有用。
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
还可以测试数组元素是否大于 0。
B = all(A(:) > 0)
B = logical 1
A(:) 语法将 A 的元素转换成单列向量,因此您可以将此类型语句用于任意大小的数组。
A(:)
创建一个 3×3 矩阵。
通过指定 dim = 2 测试 A 行中所有非零元素。
dim = 2
B = all(A,2)
B = 3×1 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 = 1×1×3 logical array B(:,:,1) = 1 B(:,:,2) = 0 B(:,:,3) = 1
输入数组,指定为标量、向量、矩阵或多维数组。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char 复数支持: 是
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
char
沿其运算的维度,指定为正整数标量。如果不指定维度,则默认值是大小不等于 1 的第一个数组维度。
以一个二维输入数组 A 为例:
all(A,1) 对 A 中列的连续元素进行处理并返回逻辑值行向量。
all(A,1)
all(A,2) 对 A 中行的连续元素进行处理并返回逻辑值列向量。
all(A,2)
数据类型: 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 的维度在B 中的大小为 1。
全部展开
all 函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
用法说明和限制:
对于输入参量 A:
如果不指定维度,代码生成器将沿输入数组中具有可变大小或其大小不为 1 的第一个维度进行运算。如果此维度在代码生成时具有可变大小且在运行时为 1,则可能发生运行时错误。为避免此错误,请指定维度。
如果输入数组的所有维度在代码生成时都具有可变大小,则此数组在运行时不能为空。
如果使用 dim 参量,它在代码生成时必须为常量。
不支持双精度数据类型。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
all 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
gpuArray
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
在 R2006a 之前推出
any | and | allunique | colon | prod | sum
any
and
allunique
colon
prod
sum
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处