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');endif ( 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');elsedisp('Line 3 - Condition is not true');endif (~(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相同的数据类型和稀疏性的逻辑阵列。

MATLAB逻辑运算相关推荐

  1. matlab怎么表示逻辑与,MATLAB逻辑运算

    详细例子 在MATLAB中建立一个脚本文件,并输入下面的代码:a = 5; b = 20; if ( a && b ) disp('Line 1 - Condition is true ...

  2. matlab二进制操作,[转载]Matlab二进制类型数据相关操作

    Matlab逻辑运算 &: 逻辑与 A&B 返回值:当A.B中元素均为非零元素是,返回1,否则,为0,还可表示成and(a,b); | :逻辑或 A|B.还可以表示成or(A,B). ...

  3. matlab输出二进制,Matlab二进制类型数据相关操作

    Matlab逻辑运算 &: 逻辑与 A&B 返回值:当A.B中元素均为非零元素是,返回1,否则,为0,还可表示成and(a,b); | :逻辑或 A|B.还可以表示成or(A,B). ...

  4. MATLAB | 入门——学习笔记

    VR大作业得写一下hrtf相关的东西,终于不得不用matlab了,趁着它还没安完,赶紧学一波... 原教程:MATLAB教程 MATLAB介绍 MATLAB基本语法 MATLAB变量 ans clea ...

  5. MATLAB软件应用及语法学习基础

    MATLAB初步学习笔记 1.MATLAB简介 1.1简介 MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析.无线通信.深度学习.图像处理与计算机视觉.信号处理.量化金融与风险 ...

  6. matlab二进制定义,MATLAB二进制类型数据相关操作

    Matlab逻辑运算 &:逻辑与 A&B 返回值:当A.B中元素均为非零元素是,返回1,否则,为0,还可表示成and(a,b); |:逻辑或 A|B.还可以表示成or(A,B). ~ ...

  7. MATLAB-逻辑运算

    MATLAB逻辑运算都是针对元素的操作,运算结果是特殊的逻辑数组:在逻辑分析时,逻辑(真)用1表示,逻辑假用0表示,逻辑运算中所有的非零元素作为1处理. 注意: 使用MATLAB逻辑运算时的语法不要与 ...

  8. MATLAB基本操作(五):MATLAB中的逻辑运算及all(),any()的使用

    一,逻辑运算        这个没什么说的,学习高级语言的都明白.主要记录一下它的不同之处       1) &(与),|(或),~(非)       2) &&(与),||( ...

  9. MATLAB语言中的关系与逻辑运算

    在执行关系及逻辑运算时,MATLAB将输入的不为零的数值都视为真(True)而为零的数值则视为否(False). 运算的输出值将判断为真者以 1 表示而判断为否者以 0 表示.各个运算元须用在二个大小 ...

最新文章

  1. WinForm导出文件,你懂的……
  2. 利用Android NDK编译lapack
  3. String,StringBuffer,StringBulider 三者的区别
  4. Dubbo Admin —— Spring Cloud Alibaba 2021.1 + Nacos + Dubbo Admin参考配置
  5. php namespace原理作用,php 命名空间(namespace)原理与用法实例小结
  6. .NET6之MiniAPI(二十):实体验证FluentValidation
  7. c语言字符串每个字母加4,C语言基础:各字符型数据
  8. 关于nginx unit服务非正常关闭后,无法重新启动问题的处理
  9. VS2015激活 密钥
  10. axurerp9怎么生成html形式页面,Axure RP教程 Axure RP如何生成HTML文件
  11. python爬虫-斗鱼弹幕(asyncore仅供学习参考用)
  12. linux下du和df结果不一致的原因及处理
  13. Python基础(学习笔记)
  14. FLOWABLE 流程中的自动跳过
  15. ESD防护方法及设计要点
  16. android 多任务按钮,XDA大神推出Android多任务切换神器
  17. 鼻子上爱出油,还有黑头、粉刺怎么办???
  18. 陆峥峰(帮别人名字作诗)
  19. 数学建模—投资组合问题
  20. 开发笔记:RichEdit line insertion error.的逃避处理办法

热门文章

  1. Delphi - Indy TIdMessage和TIdSMTP实现邮件的发送
  2. 笔记系列之zookeeper在单机模拟集群安装
  3. 物联网控制APP入门专题(二)---阿里云iot studio移动可视化功能基本操作
  4. 浅谈语音测试方案(一)
  5. 边缘计算网关下山体滑坡监测系统解决方案
  6. 移动式摇臂摄影机器人_首款智能摇臂机器人ST-RJ400上线
  7. L3-013 非常弹的球 (30 分)(简单运动学)
  8. FL Studio20版本下载后覆盖升级中文选项
  9. Direct3D 11 总结 —— 8 实现简单的绿幕抠图效果
  10. “小白兔”微信公众号菜单图形管理工具