在MATLAB中,提供了丰富的运算符,运算主要包括算数运算、关系运算和逻辑运算。
一、算数运算符
分为标量和数组运算和矩阵运算。需要注意:对于a/b,是a除以b,对于a\b,是b除以a。在MATLAB中,采用符号^表示乘方运算,采用 log2()计算对数。
例子:
>> a=20; >> b=15; >> c1=a*b %乘法 c1 = 300 ------------------------------------------ >> c1=a/b %右除法 c1 = 1.3333 ------------------------------------------ >> c3=a\b %左除法 c3 = 0.7500 ------------------------------------------ >> c4=2^20 %乘方 c4 = 1048576 ------------------------------------------ >> c5=log2(c4) %对数 c5 = 20
二、关系运算符(返回值是逻辑型logical)
例子:
>> a=randn(3,5) %randn()产生由随机数组成的矩阵 a = -0.2050 1.4090 -1.2075 0.4889 -0.3034 -0.1241 1.4172 0.7172 1.0347 0.2939 1.4897 0.6715 1.6302 0.7269 -0.7873 ------------------------------------------ >> b1=a>=0.3 %大于等于 b1 = 3×5 logical 数组 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0
------------------------------------------ >> b2=lt(a,0.7) %小于 b2 = 3×5 logical 数组 1 0 1 1 1 1 0 0 0 1 0 1 0 0 1 ------------------------------------------ >> b2=b1~=b2 %不等于 b2 = 3×5 logical 数组 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1
另,对于浮点数的比较,因为浮点数在存储时存在相对误差。在程序中,最好不要直接比较两个浮点数是否相等,而是通过两个浮点数的差是否小于某个特别小的数来判断是否相等。
例子:比较两个浮点数是否相等。
>> format long; %改变数据显示的位数 >> a=3.1415926 a = 3.141592600000000 ---------------------------------------------------------------- >> c1=a==pi %直接进行比较,采用关系运算符“==”,则两个浮点数不相等 c1 = logical 0 ---------------------------------------------------------------- >> c2=abs(a-pi)<1e-5 %比较差值是否小于 1e-5,是则相等 c2 = logical 1
三、逻辑运算符
MATLAB的逻辑运算分为三类,分别是:逐个元素的逻辑运算、快速逻辑运算、逐位逻辑运算。
(一)逐个元素的逻辑运算
运算符 | 函数 | 说明 |
& | and | 逻辑与(单目) |
| | or | 逻辑或(单目) |
~ | not | 逻辑非(双目) |
— | xor | 逻辑异或 |
(二)快速逻辑运算
运算符 | 说明 |
&& | 快速逻辑与,当第一个操作数为假时,直接返回假,否则与 & 相同 |
|| | 快速逻辑或,当第一个操作数为真时,直接返回真,否则与 | 相同 |
(三)逐位逻辑运算
函数 | 函数说明 |
bitand(a,b) | 逐位逻辑与 |
bitor(a,b) | 逐位逻辑或 |
bitcmp(a,b) | 逐位逻辑非 |
bitxor(a,b) | 逐位逻辑异或 |
四、运算符的优先级
picture via :blog.sina.com.cn/xywatersky
时间: 2024-10-10 11:48:02