前言
本文的主要引用资料为:
- 薛定宇. 控制系统计算机辅助设计——MATLAB语言与应用(第二版)
特殊常数
matlab保留了些特殊常数名称,虽然这常数可以当做变量被赋值,但是在实际应用中,应当尽量避免。
- eps——浮点运算的最小误差,若某个量绝对值小于该值,可以认为该值为0.
- i和j ——纯虚数
- Inf ——正无穷
- NaN——不定式(not a number)
- pi——圆周率
- lasterr——存放最新一次的错误信息。
- lastwarn——存放最新一次警告信息。
冒号表达式
冒号表达式在matlab中非常重要。其基本表达式为:
v
=
s
1
:
s
2
:
s
3
v=s_1:s_2:s_3
v=s1:s2:s3
其含义就是:生成一个行向量。其起始值为
s
1
s_1
s1,步长为
s
2
s_2
s2,直至最后一个值不超过
s
3
s_3
s3。
s
2
s_2
s2可以省略,默认值为1。
>> v1=0:0.2:pi %注意结束值为3,而非pi
v1 =
Columns 1 through 11
0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000
Columns 12 through 16
2.2000 2.4000 2.6000 2.8000 3.0000
>> v1=0:pi
v1 =
0 1 2 3
子矩阵的提取
子矩阵提取的基本表达式为:
B
=
A
(
v
1
,
v
2
)
B=A(v_1,v_2)
B=A(v1,v2)
其中:
v
1
v_1
v1——
A
A
A矩阵中需提取行号所构成的向量或者标量
v
2
v_2
v2——
A
A
A矩阵中需提取列号所构成的向量或者标量
注意:
若参数为:,表示全部的行或者列。参数值中end表示最后一行,取决于其位置。
A =
1 2 3
4 5 6
7 8 9
>> B1=A(1:2:end,:)%获取A奇数行
B1 =
1 2 3
7 8 9
>> B=A(:)%获取A所有参数
B =
1
4
7
2
5
8
3
6
9
>> B=A(2,3)%获取A的第二行第三列
B =
6
矩阵转置
求矩阵Hermit转置(共轭转置)
B
=
A
′
B=A'
B=A′
求普通转置
B
=
A
.
′
B=A.'
B=A.′
矩阵逻辑运算
运算 | 符号 |
---|---|
与运算 | A&B |
或运算 | A|B |
非运算 | ~A |
异或运算 | xor(A,B) |
其结果为逻辑0或者逻辑1。
比较运算
运算 | 符号 |
---|---|
等于运算 | A==B |
大于(等于)运算 | >(>=) |
不等运算 | A~=B |
异或运算 | xor(A,B) |
三个常用函数函数
find()查找满足某种关系的矩阵下标。
>> find(A>5)
ans =
3
6
8
9
>> [k,l]=find(A>5)
k =
3
3
2
3
l =
1
2
3
3
类似的还有all()和any()函数。
>> all(A>5) %是否A矩阵某列全部大于5
ans =
0 0 0
>> any(A>5) %是否A矩阵某列存在大于5
ans =
1 1 1
>> all(A(:)>5) %是否A矩阵所有元素全部大于5
ans =
0
基本数论运算
函数名 | 函数说明 |
---|---|
floor() | 按照负无穷方向取整 |
ceil() | 按照正无穷方向取整 |
round() | 按照四舍五入的方式取整 |
fix() | 按照0方向取整 |
rat() | 最简有理数 |
rem() | 获得求模余数 |
gcd() | 求最大公约数 |
lcm() | 求最小公倍数 |
factor() | 对整数n进行质因数分解 |
isprime() | 判断是否是质数 |