Main Content

logical

将数值转换为逻辑值

说明

示例

L = logical(A)A 转换为一个逻辑值数组。A 中的任意非零元素都将转换为逻辑值 1 (true),零则转换为逻辑值 0 (false)。复数值和 NaN 不能转换为逻辑值,因此会导致转换错误。

示例

全部折叠

选取数值矩阵的奇数元素。

创建一个数值矩阵。

A = [1 -3 2;5 4 7;-8 1 3];

查找模数 mod(A,2),并将其转换为逻辑数组以供进行索引。

L = logical(mod(A,2))
L = 3x3 logical array

   1   1   0
   1   0   1
   0   1   1

如果 A 为奇数,该数组包含逻辑值 1 (true)。

使用 L 作为逻辑索引来选取 A 的奇数元素。

A(L)
ans = 6×1

     1
     5
    -3
     1
     7
     3

结果是一个包含 A 所有奇数元素的向量。

L 使用 NOT 逻辑运算符 ~,以查找 A 的偶数元素。

A(~L)
ans = 3×1

    -8
     4
     2

输入参数

全部折叠

输入数组,指定为标量、向量、矩阵或多维数组。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char

提示

  • 大多数涉及逻辑数组的算术运算都会返回双精度值。例如,向逻辑数组添加零会返回双精度数组。

  • 此外,还可以使用关系运算符(==<>~= 等)和 anyallisnanisinfisfinite 等函数创建逻辑数组。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。

版本历史记录

在 R2006a 之前推出