Matlab中的逻辑运算Word下载.docx
《Matlab中的逻辑运算Word下载.docx》由会员分享,可在线阅读,更多相关《Matlab中的逻辑运算Word下载.docx(6页珍藏版)》请在冰豆网上搜索。
转载
标签:
杂谈
逻辑运算符:
与
|
或
~
非
“&”和“|”操作符可比较两个标量或两个同阶矩阵.对于矩阵来说必须符合规则,如果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语句中经常被用到.如:
ifall(A<
5)
dosomething
end
另外,还有"
和"
运算符,Matlab中的逻辑运算"
的区别如下:
和||被称为&
和|的shortcircuit形式,
A&
B
(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。
(2)
A和B可以为矩阵(e.g.A=[10],B=[00])。
(1)首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。
(2)A和B不能是矩阵,只能是标量。
与“||”同理。
B首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。
这种用法非常有用,如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A对减少计算量是有好处的。
另外这也可以防止类似被0除的错误:
flag=denum~=0&
num/denum>
10
ifflag
%DoSomething
endif
上面的表达式就可以防止denum等于0的情况。
当然,如果你希望在判断的时候,对A和B表达式都进行计算,就应该使用标准的&
或者|。
Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。
ifflag=denum~=0&
执行的结果一样
符号
符号用途说明
+
加
-
减
.*
点乘详细说明helparith
*
矩阵相乘
^
矩阵求幂
.^
点幂
左除详细说明helpslash
右除
.
点左除
点右除
kron
张量积详细说明helpkron
,
作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来
;
(a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果
(b)在创建矩阵的语句中指示一行元素的结束,例如m=[xyz;
ijk]
:
(a)创建向量的表达式分隔符,如x=abc
(b)a(,j)表示j列的所有行元素;
a(i,)表示i行的所有列元素;
a(13,4)表示第四列的第1行至第3行元素
()
圆括号
[]
创建数组、向量、矩阵或字符串(字母型)
{}
创建单元矩阵(cellarray)或结构(struct)
%
注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。
'
(a)定义字符串用
(b)向量或矩阵的共轭转置符
.'
一般转置符
...
表示MATLAB表达式继续到下一行,增强代码可读性
=
赋值符号
==
等于关系运算符
<,>
小于,大于关系运算符详细说明helprelop
逻辑与
逻辑或
逻辑非
xor
逻辑异或
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)