这个例子展示了如何使用任何
和所有
函数将整个数组减少为一个逻辑值。
的任何
和所有
函数是逻辑的自然延伸|
(或)和&
分别和运营商。然而,并不是只比较两个元素任何
和所有
函数比较数组中特定维度的所有元素。就好像所有这些元素都是由&
或|
运营商和任何
或所有
函数计算得到的长逻辑表达式。因此,与核心逻辑运算符不同的是任何
和所有
函数减小它们所操作的数组维数的大小,使其大小为1。这可以将许多逻辑值减少为一个逻辑条件。
首先,创建一个矩阵一个
包含1到25之间的随机整数。将随机数生成器重置为可再现性的默认状态。
rng默认的5 =兰迪(25日)
一个=5×521 3 4 4 17 23 7 25 11 14 14 24 23 22 23 24 13 20 24 16 25 21 24 17
接下来,使用国防部
函数以及逻辑NOT运算符,~
,以确定在一个
甚至。
= ~国防部(2)
一个=5 x5逻辑阵列0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0
得到的矩阵具有逻辑值1
(真正的
),其中元素是偶数且符合逻辑的0
(假
),其中元素为奇数。
自任何
和所有
函数将其操作的维数缩减为1,通常需要对其中一个函数进行两次应用,才能将一个二维矩阵缩减为一个逻辑条件,例如任何(一个))(
.但是,如果你使用符号(:)
考虑…的所有因素一个
作为单个列向量,可以使用任何(一个(:))
在不嵌套函数调用的情况下获得相同的逻辑信息。
确定是否有元素一个
甚至。
任何(一个(:))
ans =逻辑1
可以在的函数调用中执行逻辑和关系比较任何
或所有
.这使得快速测试数组的各种属性变得很容易。
确定是否所有元素一个
是奇数。
所有(~ (:))
ans =逻辑0
中是否有主对角元素或超对角元素一个
甚至。自从带菌者回来诊断接头(A)
和诊断接头(1)
如果大小不相同,则首先需要将每个对角线缩减为单个标量逻辑条件,然后再进行比较。您可以使用短路或操作符||
执行比较,因为如果第一个对角线中的任何元素是偶数,那么不管操作符右侧出现什么,整个表达式的计算结果都是true。
任何(诊断接头(A)) | |任何(诊断接头(A, 1))
ans =逻辑1