Matlab符号运算符的使用
一、&&/||/&/|
|:数组逻辑或 ||:先决逻辑或 &:数组逻辑与 &&:先决逻辑与
&&和||被称为&和|的short circuit形式。 先决逻辑符号含义:
先判断左边是否为真;若为真,则不再判断右边;若为假,才继续进行或运算 先判断左边是否为假;若为假,则不再判断右边;若为真,才继续进行与运算
两种运算符号的区别:
先决逻辑运算的运算对象只能是标量
数组逻辑运算可为任何维数组,运算符两边维数要相同
举例分析:
A&B :首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。 A&&B:首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。这种用法非常有用,如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A对减少计算量是有好处的。
另外这也可以防止类似被0除的错误。
Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。// 这可能就是有时候用&和 | 会报错的原因。
二、系统结构体内的变量
一般都是小写。 matlab区分大小写。
三、==
表示逻辑相等,返回结果,相等为1,不等为0。
四、.*(times)点乘 times
Array multiply 数组乘 Syntax
c = a.*b c = times(a,b) Description
c = a.*b multiplies arrays a and b element-by-element and returns the result in c. Inputs a and b must have the same size unless one is a scalar.
注释:a、b要同尺寸,或其中一个为标量。
c = times(a,b) is called for the syntax a.*b when a or b is an object. Example a = [1 2 3]'; b = [5 6 7]'; c = a.*b;
五、矩阵或向量共轭转置“’”和转置“.’”
若矩阵由实数构成,二者作用一样;
若矩阵中由复数或复数和实数构成,“’”表示共轭转置,“.’”表示转置。 六、判断一个数在某一范围内的方法
不可以写成1 < A < 6,而要写作A>1 && A<6才能正确实现数A所在范围的判断。