Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

and, &

计算逻辑 AND

说明

A & B 对输入 AB 执行逻辑 AND 运算,并返回一个数组或表,其中包含设置为逻辑值 1 (true) 或逻辑值 0 (false) 的元素。如果 AB 在相同的位置都包含非零元素,则输出中对应位置的元素将设置为逻辑值 1 (true)。否则,该元素设置为 0

有关按位逻辑 AND 运算,请参阅 bitand

示例

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

示例

全部折叠

求两个矩阵的逻辑 AND。只有两个矩阵都包含非零值时,结果中才会包含逻辑值 1 (true)。

A = [5 7 0; 0 2 9; 5 0 0]
A = 3×3

     5     7     0
     0     2     9
     5     0     0

B = [6 6 0; 1 3 5; -1 0 0]
B = 3×3

     6     6     0
     1     3     5
    -1     0     0

A & B
ans = 3x3 logical array

   1   1   0
   0   1   1
   1   0   0

and 创建真值表。

A = [true false]
A = 1x2 logical array

   1   0

B = [true; false]
B = 2x1 logical array

   1
   0

C = A&B
C = 2x2 logical array

   1   0
   0   0

自 R2023a 开始提供

创建两个表,并对它们执行逻辑 AND 运算。行名称(如果两者中都存在)和变量名称必须相同,但顺序不必相同。输出的行和变量与第一个输入的顺序相同。

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

    R1    0     0 
    R2    2     4 

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

    R2    4     3 
    R1    2     0 

A & B
ans=2×2 table
           V1       V2  
          _____    _____

    R1    false    false
    R2    true     true 

输入参数

全部折叠

操作数,指定为标量、向量、矩阵、多维数组、表或时间表。输入 AB 必须具有相同的大小或具有兼容的大小(例如,A 是一个 M×N 矩阵,B 是标量或 1×N 行向量)。有关详细信息,请参阅基本运算的兼容数组大小

表或时间表形式的输入必须满足以下条件: (自 R2023a 起)

  • 如果输入是表或时间表,则其所有变量都必须有支持该运算的数据类型。

  • 如果只有一个输入是表或时间表,则另一个输入必须为数值或逻辑数组。

  • 如果两个输入均为表或时间表,则:

    • 两个输入必须具有相同的大小,或其中一个必须为单行表。

    • 两个输入必须有相同名称的变量。但是,每个输入中的变量可以有不同的顺序。

    • 如果两个输入均为表,并且都有行名称,则其行名称必须相同。但是,每个输入中的行名称可以有不同的顺序。

    • 如果两个输入均为时间表,则其行时间必须相同。但是,每个输入中的行时间可以有不同的顺序。

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

提示

  • 可将几个逻辑运算链接起来,例如 A & B | C

  • 符号 &&& 在 MATLAB® 中执行不同的运算。在此介绍的按元素 AND 运算符是 &。短路 AND 运算符是 &&

  • 当在 ifwhile 循环表达式的上下文(并且仅在该上下文中)使用按元素 &| 运算符时,这些运算符使用短路来计算表达式的结果。否则,必须指定 &&|| 才能选择加入短路行为。有关详细信息,请参阅 Short-Circuit ANDShort-Circuit OR

扩展功能

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

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

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

版本历史记录

在 R2006a 之前推出

全部展开