Matlab中的逻辑运算"&&"与"&","||"与"|"的区别

逻辑运算符:

 

&

|

~

 

   “&”和“|”操作符可比较两个标量或两个同阶矩阵.对于矩阵来说必须符合规则,如果A和B都是0-1矩阵,则A&B或A|B也都是0-1矩阵,这个0-1矩阵的元素是A和B对应元素之间逻辑运算的结果,逻辑操作符认定任何非零元素都为真,给出“1”,任何零元素都为假,给出“0”.

     非(或逻辑非)是一元操作符,即~A:当A是非零时结果为“0”;当A为“0”时,结果为“1”.因此下列两种表示:

p | (~p)             结果为1.

p & (~p)          结果为0.

any和all函数在连接操作时很有用,设x是0-1向量,如果x中任意有一元素非零时,any(x)返回“1”,否则返回“0”;all(x)函数当x的所有元素非零时,返回“1”,否则也返回“0”.这些函数在if语句中经常被用到.如:

    if all(A<5)

       do something

    end

另外,还有"&&"和"||"运算符,Matlab中的逻辑运算"&&"与"&","||"与"|"的区别如下:

&&和||被称为&和|的short circuit形式,

A&B
(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。
(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0])。
A&&B
(1)首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。
(2)A和B不能是矩阵,只能是标量。
"|"与“||”同理。

A&&B 首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。这种用法非常有用,如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A对减少计算量是有好处的。另外这也可以防止类似被0除的错误:

flag=denum~=0 && num/denum>10
if flag
   %Do Something
end if
上面的表达式就可以防止denum等于0的情况。当然,如果你希望在判断的时候,对A和B表达式都进行计算,就应该使用标准的&或者|。Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。

if flag=denum~=0 && num/denum>10
   %Do Something
end if

if flag=denum~=0 & num/denum>10
   %Do Something
end if

执行的结果一样

 

 

符号
 符号用途说明
 
+
 加
 
-
 减
 
.*
 点乘  详细说明help arith
 

 矩阵相乘
 

 矩阵求幂
 
.^
 点幂
 

 左除 详细说明help slash
 

 右除
 
.
 点左除
 
.
 点右除
 
kron
 张量积 详细说明help kron
 

 作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来
 

 (a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果
(b)在创建矩阵的语句中指示一行元素的结束,例如m=[x y z;i j k]
 

 (a)创建向量的表达式分隔符,如x=abc
(b)a(,j)表示j列的所有行元素;a(i,)表示i行的所有列元素;a(13,4)表示第四列的第1行至第3行元素
 
()
 圆括号
 
[]
 创建数组、向量、矩阵或字符串(字母型)
 
{}
 创建单元矩阵(cell array)或结构(struct)
 
%
 注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。
 
'
 (a)定义字符串用
(b)向量或矩阵的共轭转置符
 
.'
 一般转置符
 
...
 表示MATLAB表达式继续到下一行,增强代码可读性
 

 赋值符号
 
==
 等于关系运算符
 
<,>
 小于,大于关系运算符 详细说明help relop
 
&
 逻辑与
 

 逻辑或
 
~
 逻辑非
 
xor
 逻辑异或
 

符号
 符号用途说明
 
+
 加
 
-
 减
 
.*
 点乘  详细说明help arith
 

 矩阵相乘
 

 矩阵求幂
 
.^
 点幂
 

 左除 详细说明help slash
 

 右除
 
.
 点左除
 
.
 点右除
 
kron
 张量积 详细说明help kron
 

 作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来
 

 (a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果
(b)在创建矩阵的语句中指示一行元素的结束,例如m=[x y z;i j k]
 

 (a)创建向量的表达式分隔符,如x=abc
(b)a(,j)表示j列的所有行元素;a(i,)表示i行的所有列元素;a(13,4)表示第四列的第1行至第3行元素
 
()
 圆括号
 
[]
 创建数组、向量、矩阵或字符串(字母型)
 
{}
 创建单元矩阵(cell array)或结构(struct)
 
%
 注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。
 
'
 (a)定义字符串用
(b)向量或矩阵的共轭转置符
 
.'
 一般转置符
 
...
 表示MATLAB表达式继续到下一行,增强代码可读性
 

 赋值符号
 
==
 等于关系运算符
 
<,>
 小于,大于关系运算符 详细说明help relop
 
&
 逻辑与
 

 逻辑或
 
~
 逻辑非
 
xor
 逻辑异或

Matlab中的逻辑运算相关推荐

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

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

  2. if 结构matlab,matlab中if语句and

    请问高手:在matlab中,&和&&的区别 [转]Matlab中的逻辑运算"&&"与"&","||&q ...

  3. matlab中如果语句,matlab逻辑判断语句

    matlab 基本语句 matlab 基本语句 1.循环语句 for for i=s1:s3:s2 循环语句组 end 解释:首先给 i 赋值 s1;然后,判断 i 就是否介于 s1 与 s2 之间; ...

  4. matlab中的terminator模块,2.2 Ground 及 Terminator模块

    课时:117节课 时长:20.1小时 课级:中级提高 simulink是matlab中的一种可视化仿真工具, 是一种基于matlab的框图设计环境,是实现动态系统建模.仿真和分析的一个软件包,被广泛应 ...

  5. matlab inline feval,matlab中关于函数句柄、feval函数以及inline函数的解析

    MATLAB函数句柄 函数句柄(Function handle)是MATLAB的一种数据类型. 包含了函数的路径.函数名.类型以及可能存在的重载方法: 引入函数句柄是为了使feval及借助于它的泛函指 ...

  6. matlab矩阵 代表什么,matlab中矩阵AB是什么意思

    Q1:matlab矩阵中的'代表什么意思 A(1)是指矩阵中的第一个元素. matlab中矩阵的排列是按照从上往下,从左往右的: 比如说,一列数,给转化为矩阵,排列如下: >> a=1:1 ...

  7. matlab中exp(liangx),Matlab基础知识

    <Matlab基础知识>由会员分享,可在线阅读,更多相关<Matlab基础知识(122页珍藏版)>请在人人文库网上搜索. 1.Lxy, China Jiliang Univer ...

  8. matlab中矩阵的表示与简单操作

    matlab中矩阵的表示与简单操作 原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示 在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在"[ ]"内: b.矩阵的 ...

  9. matlab中矩阵的秩,matlab矩阵的秩

    如下所示为一方阵 在 matlab 输入矩阵: A = [1 2 4; 407 9 1 3]; 2. 2 查阅 matlab help 可以知道,利用 eig 函数可以快速求解矩阵的特征值与特 征.. ...

最新文章

  1. Conda安装Glossary词汇表
  2. java button名字_如何实现java按钮的名字输出到文本框鄙人刚学java,题目如 爱问知识人...
  3. 做网站没有技术万万不能
  4. linux下实现getch()函数的功能
  5. Qt Creator语义突出显示
  6. Hbuilder开发app实战-识岁06-face++的js实现【完结】
  7. php多进程pcntl学习(一)
  8. Sudo bug 可导致非权限 Linux 和 MacOS 用户以根身份运行命令
  9. oracle范围分区表,Oracle表分区之范围分区-Oracle
  10. GDAL读取jpg文件中GPS坐标信息
  11. jquery-validate验证身份证
  12. 小米一键上锁工具_便宜好用:小米智能门锁E 上手体验报告
  13. 一篇文章彻底搞懂什么是电厂智能巡检系统?
  14. 公差带与配合 配合选择基础
  15. HTML基础_3_HTML元素周期表
  16. Code Complete阅读笔记(二)
  17. 《SteamVR2.2.0交互系统(Interaction System)》(Yanlz+Unity+XR+VR+AR+MR+Valve+Teleport+Skeleton+立钻哥哥++ok++)
  18. 计算机学科专业知识两门课,计算机学科两门专业课的融会贯通教学改革探讨
  19. springboot项目如何优雅停机
  20. CodeForces 1089 简要题解

热门文章

  1. Mysql异构数据方案Canal
  2. 大学计算机实验报五告,大学计算机实验报告二_相关文章专题_写写帮文库
  3. 火力全开 思科FirePOWER下一代防火墙
  4. JDK1.8下载、安装和环境变量配置教程(win7和win10分别介绍)
  5. 微信小程序——云开发
  6. 梆梆安全亮相网络安全博览会 矢志保护智能生活
  7. 益聚星荣:“真实和虚拟的融合是腾讯未来方向”马化腾要进军元宇宙?
  8. java方面的文献综述怎么写_java毕业论文参考文献范文[工作范文]
  9. 字符串显示(第三方触摸屏)
  10. 复变函数与积分变换matlab,《复变函数与积分变换》课程教学与MATLAB应用