4.6 逻辑值

Octave 内置了对逻辑值的支持,即取值为 truefalse 的变量。当比较两个变量时,结果将是一个逻辑值,其值取决于比较是否成立。

基本逻辑运算有 &|!,分别对应"逻辑与"、"逻辑或"和"逻辑非"。这些运算遵循通常的逻辑规则。

逻辑值也可以作为标准数值计算的一部分使用。在这种情况下,true 转换为 1false 转换为 0,两者均采用双精度浮点数表示。因此,true*22 - false/6 的结果是 22

逻辑值还可以用于索引矩阵和元胞数组。使用逻辑数组进行索引时,结果将是一个包含逻辑数组中 true 部分对应值的向量。参见逻辑索引

逻辑值也可以通过将数值对象强制转换为逻辑类型,或使用 truefalse 函数来构造。

 
TF = logical (x)

将数值对象 x 转换为逻辑类型。

任何非零值都将转换为 true (1),而零值将转换为 false (0)。非数值 NaN 无法转换,并将产生错误。

兼容性说明:Octave 接受复数值作为输入,而 MATLAB 会报错。

另请参阅: doublesinglechar

 
T = true
T = true (n)
T = true (m, n, …)
T = true ([m, n, …])
T = true (…, "like", var)

返回一个标量、矩阵或 N 维数组,其所有元素均为逻辑值 1

如果不带参数调用,则返回标量逻辑值 1

如果使用单个标量整数参数 n 调用,则返回一个 N×N 的方阵。

如果使用两个或多个标量整数参数,或使用一个整数向量调用,则返回具有给定维度的数组。

如果在 "like" 后指定了一个逻辑变量 var,则输出 T 将具有与 var 相同的稀疏性。

编程注意:true (…)logical (ones (…)) 更快(30 倍)且更节省内存。

任何负数维度均视为零,任何零维度将导致空矩阵。这种特殊行为是为了兼容 MATLAB

另请参阅: falselogicaloneszeros

 
F = false
F = false (n)
F = false (m, n, …)
F = false ([m, n, …])
F = false (…, "like", var)

返回一个标量、矩阵或 N 维数组,其所有元素均为逻辑值 0

如果不带参数调用,则返回标量逻辑值 0

如果使用单个标量整数参数 n 调用,则返回一个 N×N 的方阵。

如果使用两个或多个标量整数参数,或使用一个整数向量调用,则返回具有给定维度的数组。

如果在 "like" 后指定了一个逻辑变量 var,则输出 F 将具有与 var 相同的稀疏性。

编程注意:false (…)logical (zeros (…)) 更快(30 倍)且更节省内存。

任何负数维度均视为零,任何零维度将导致空矩阵。这种特殊行为是为了兼容 MATLAB

另请参阅: truelogicaloneszeros


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2