• MATLAB逻辑运算


    MATLAB逻辑运算都是针对元素的操作,运算结果是特殊的逻辑数组;在逻辑分析时,逻辑(真)用1表示,逻辑假用0表示,逻辑运算中所有的非零元素作为1处理。

    注意:

    使用MATLAB逻辑运算时的语法不要与C语言、Java等编程语言混淆。

    MATLAB 有两种类型的逻辑运算符和函数:

    • Element-wise - 这些运算上的对应元素的逻辑阵列。
    • Short-circuit - 这些运算上的标量,逻辑表达式。

    MATLAB元素明智的逻辑运算符操作元素元素逻辑阵列:符号&,|和〜逻辑数组运算符AND,OR,NOT。

    MATLAB允许短路的短路逻辑运算符,逻辑运算:符号&&和| |是短路逻辑符AND和OR。

    详细例子


    在MATLAB中建立一个脚本文件,并输入下面的代码:

    a = 5;
    b = 20;
       if ( a && b )
            disp('Line 1 - Condition is true');
       end
       if ( a || b )
           disp('Line 2 - Condition is true');
       end
       % lets change the value of  a and b 
       a = 0;
       b = 10;
       if ( a && b )
           disp('Line 3 - Condition is true');
       else
           disp('Line 3 - Condition is not true');
       end
       if (~(a && b))
       
          disp('Line 4 - Condition is true');
       end

    运行该文件,产生如下结果:

    Line 1 - Condition is true
    Line 2 - Condition is true
    Line 3 - Condition is not true
    Line 4 - Condition is true
    

    MATLAB逻辑运算功能


    除了在上述的逻辑运算符,MATLAB 提供下面的命令或函数用于同样的目的:

    函数描述
    and(A, B)查找数组或标量输入的逻辑和;执行所有输入数组A,B等的逻辑AND,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果所有输入数组在同一个数组位置都包含一个非零元素,那么输出数组的一个元素将被设置为1;否则,该元素设置为0。
    not(A)查找数组或标量输入的逻辑NOT;执行输入数组A的逻辑NOT,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果输入数组在同一个数组位置包含一个零值元素,那么输出数组的一个元素将被设置为1;否则,该元素设置为0。
    or(A, B)查找数组或标量输入的逻辑或; 执行所有输入数组A,B等的逻辑或,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果任何输入数组在同一个数组位置包含一个非零元素,则输出数组的一个元素设置为1;否则,该元素设置为0。
    xor(A, B)逻辑异或; 对数组A和B的相应元素执行异或运算。如果A(i,j,...)或B(i,j)...,则所得到的元素C(i,j,...) j,...),但不是两者都是非零的。
    all(A)

    确定数组A的所有数组元素是否为非零或真。

    • 如果A是向量,则如果所有元素都为非零,则所有(A)返回逻辑1(真),如果一个或多个元素为零,则返回逻辑0(假)。

    • 如果A是非空矩阵,则所有(A)将A的列视为向量,返回逻辑1和0的行向量。

    • 如果A是空的0x0矩阵,则全部(A)返回逻辑1(真)。

    • 如果A是一个多维数组,则所有(A)都沿着第一个非指定维度行事,并返回一个逻辑值数组。 该尺寸的尺寸减小到1,而所有其他尺寸的尺寸保持不变。这个维度的大小减少到1,而其他所有维度的尺寸保持不变。

    all(A, dim)通过标量dim沿着维数A的维度进行测试。
    any(A)

    确定数组元素是否为非零;测试数组中不同维度的元素是否为非零数字,或是逻辑1(真)。 任何函数忽略NaN(不是数字)的条目。

    • 如果A是向量,任何(A)如果A的任何元素是非零数或逻辑1(真),则返回逻辑1(真),如果所有元素为零,则返回逻辑0(假)。

    • 如果A是非空矩阵,则任何(A)将A的列视为向量,返回逻辑1和0的行向量。

    • 如果A是一个空的0x0矩阵,任何(A)返回逻辑0(假)。

    • 如果A是一个多维数组,则任何(A)都沿着第一个非整数维进行操作,并返回一个逻辑值数组。该维度的尺寸减小到1,而所有其他维度的尺寸保持不变。

    any(A,dim)通过标量dim沿着维数A的维度进行测试。
    false逻辑0(假)
    false(n)是逻辑0的n×n矩阵
    false(m, n)是逻辑0的一个m×n矩阵。
    false(m, n, p, ...)是由逻辑0的逐列逐列数组。
    false(size(A))是与数组A大小相同的逻辑零数组。
    false(...,'like',p)是与逻辑阵列p相同的数据类型和稀疏性的逻辑零数组。
    ind = find(X)查找非零元素的索引和值;定位数组X的所有非零元素,并返回向量中这些元素的线性索引。 如果X是行向量,则返回的向量是行向量; 否则返回列向量。如果X不包含非零元素或是空数组,则返回一个空数组。

    ind = find(X, k)

    ind = find(X, k, 'first')

    最多返回与X的非零条目相对应的前k个索引。k必须是正整数,但它可以是任何数字数据类型。
    ind = find(X, k, 'last')最多返回与X的非零条目相对应的最后k个索引。
    [row,col] = find(X, ...)返回矩阵X中非零条目的行和列索引。使用稀疏矩阵时,此语法特别有用。 如果X是N>2的N维数组,col包含列的线性索引。
    [row,col,v] = find(X, ...)返回X中非零条目的列或行向量v,以及行和列索引。如果X是逻辑表达式,则v是逻辑数组。 输出v包含通过评估表达式X获得的逻辑数组的非零元素。
    islogical(A)确定输入是否为逻辑数组;如果A是逻辑数组,返回true,否则返回false。 如果A是从逻辑类派生的类的实例,它也返回true。
    logical(A)将数值转换为逻辑;返回一个可用于逻辑索引或逻辑测试的数组。
    true逻辑1(真)
    true(n)是一个n×n逻辑矩阵。
    true(m, n)是一个mxn逻辑矩阵。
    true(m, n, p, ...)是由逻辑1的逐列逐列数组。
    true(size(A))是与数组A大小相同的逻辑数组。
    true(...,'like', p)是与逻辑阵列p相同的数据类型和稀疏性的逻辑阵列。

  • 相关阅读:
    神经网络中的常用算法-BP算法
    Kafka - 深入了解Kafka基础架构:Kafka的基本概念
    ISO20000认证流程是什么,ISO20000认证好处
    打地鼠(susliks) 方法记录
    【ARM】中断的处理
    ELK企业级日志分析系统
    【编程100%】22-12 基本算法之 大整数截取
    《Linux操作系统 - RK3568开发笔记》第5章 基于V4L2拍照
    亚马逊云科技最新分享:人、流程、工具全链路数据安全合规
    小心golang中的无类型常量
  • 原文地址:https://blog.csdn.net/std86021/article/details/127799210