Main Content

not, ~

计算逻辑 NOT

语法

说明

示例

~A 返回与 A 大小相同的逻辑数组或由逻辑值组成的表。如果 A 中元素为零值,则输出中对应元素为逻辑值 1 (true) 值;如果 A 中元素为非零值,则输出中对应元素为逻辑值 0 (false)。

not(A) 是执行 ~A 的替代方法,但很少使用。它可以启用类的运算符重载。

示例

全部折叠

创建一个 3×3 单位矩阵。

A = eye(3)
A = 3×3

     1     0     0
     0     1     0
     0     0     1

A 进行逻辑求反。新矩阵的类型为 logical

B = ~A
B = 3x3 logical array

   0   1   1
   1   0   1
   1   1   0

if 循环的上下文使用逻辑 not 运算符基于条件执行代码。

创建逻辑变量 A

A = false;

使用 A 编写 if/else 代码块。将 if/else 代码块放入 for 循环中,使其执行四次。

for k = 1:4
    if ~A
        disp('IF block')
        A = true;
    else
        disp('ELSE block')
    end
end
IF block
ELSE block
ELSE block
ELSE block

在第一次迭代时,Afalse,所以 ~Atrue,因此 if 块执行。但是,if 块还将 A 的值更改为 true。在剩余迭代中,~Afalse,所以 else 块执行。

自 R2023a 开始提供

创建一个表并对其执行逻辑 NOT 运算。要对表或时间表执行逻辑 NOT 运算,其所有变量都必须具有支持逻辑运算的数据类型。

A = table([0;2],[0;4],VariableNames=["V1","V2"],RowNames=["R1","R2"])
A=2×2 table
          V1    V2
          __    __

    R1    0     0 
    R2    2     4 

~A
ans=2×2 table
           V1       V2  
          _____    _____

    R1    true     true 
    R2    false    false

输入参数

全部折叠

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

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | table | timetable
复数支持:

提示

  • 您还可以使用 ~ 符号作为函数调用中的占位符输出参数。例如,[~,i] = max(A) 隐藏 max 函数的第一个输出,只返回最大值的索引。有关详细信息,请参阅忽略函数定义中的输入

扩展功能

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

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

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

版本历史记录

在 R2006a 之前推出

全部展开