MATLAB中的矩阵与向量运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 数组运算和矩阵运算
从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操作简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表
4.1.1 数组运算和矩阵运算指令形式和实质内涵
数组运算矩阵运算
指令含义指令含义
A.'非共轭转置A'共轭转置
A=s把标量s赋给数组A的每个元素
s+B把标量s分别与数组B的每个元素相加s-B, B-s标量s分别与数组B的元素之差
s.*A标量s分别与数组A的元素之积s*A标量s分别与矩阵A的元素之积
s./B, B.\s标量s分别被数组B的元素除s*inv(B)矩阵B的逆乘标量s
A.^n数组A的每个元素的n次方A^n A为方阵时,矩阵A的n次方
A+B数组对应元素的相加A+B矩阵相加
A-B数组对应元素的相减A-B矩阵相减
A.*B数组对应元素的相乘A*B内维相同矩阵的乘积
A./B A的元素被B的对应元素除A/B A右除B
B.\A一定与上相同B\A A左除B(一般与右除不同)
exp(A)以e为底,分别以A的元素为指数,求幂expm(A) A的矩阵指数函数
log(A) 对A的各元素求对数logm(A) A的矩阵对数函数
sqrt(A) 对A的积各元素求平方根sqrtm(A) A的矩阵平方函数
从上面可以看到,数组运算的运算如:乘,除,乘方,转置,要加"点".所以,我们要特别注意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的区别.另外,在执行数组与数组运算时,参与运算的数组必须同维,运算所得的结果数组也是总与原数组同维.
4.2 数组的基本运算
在MATLAB中,数组运算是针对多个数执行同样的计算而运用的.MATLAB以一种非常直观的方式来处理数组.
4.2.1 点转置和共轭转置
. ' ——点转置.非共轭转置,相当于conj(A').
>> a=1:5;
>> b=a. '
b =
1
2
3
4
5
>> c=b. '
c =
1 2 3 4 5
这表明对行向量的两次转置运算便得到原来的行向量.
' ——共轭转置.对向量进行转置运算并对每个元素取其共轭.如:
>> d=a+i*a
d =
Columns 1 through 3
1.0000 + 1.0000i
2.0000 + 2.0000i
3.0000 + 3.0000i
Columns 4 through 5
4.0000 + 4.0000i
5.0000 + 5.0000i
>> e=d'
e =
1.0000 - 1.0000i
2.0000 - 2.0000i
3.0000 - 3.0000i
4.0000 - 4.0000i
5.0000 - 5.0000i
4.2.2 纯量(标量) 和数组的四则运算
纯量和数组之间可以进行简单数学运算.如:加,减,乘,除及其混合运行.
>> g=[1 2 3 4
5 6 7 8
9 10 11 12]
>> g=g-2
g =
-1 0 1 2
3 4 5 6
7 8 9 10
>> 2*g-1
ans =
-3 -1 1 3
5 7 9 11
13 15 17 19
4.2.3 数组间的四则运算
在MATLAB中,数组间进行四则运算时,参与运算的数组必须具有相同的维数,加,减,乘,除运算是按元素与元素的方式进行的.其中,数组间的加,减运算与矩阵的加,减运算要同,运算符为:"+","-".但是,数组间的乘,除运算与矩阵间的乘,除运算完全不同,运算符号也有差别,数组间的乘,除运算符为:".*","./"或".\".
1. 数组按元素相加,减
>> g=[1 2 3 4
5 6 7 8
9 10 11 12]
>> h=[1 1 1 1; 2 2 2 2; 3 3 3 3]
>> g+h % 按元素相加
ans =
2 3 4 5
7 8 9 10
12 13 14 15
>> ans-h % 按元素相减
ans =
1 2 3 4
5 6 7 8
9 10 11 12
>> 2*g-h % 混合运算
ans =
1 3 5 7
8 10 12 14
15 17 19 21
2. 按元素乘
>> g.*h
ans =
1 2 3 4
10 12 14 16
27 30 33 36
3. 按元素除
数组间的除法运算符有两个,即左除:"./"和右除:".\",它们之间的关系是: a./b=b.\a
>> g./h
ans =
1.0000
2.0000
3.0000
4.0000
2.5000
3.0000
4.1000 4.0000
3.0000 3.3333 3.6667
4.0000
>> h.\g
ans =
1.0000
2.0000
3.0000
4.0000
2.5000
3.0000
4.1000 4.0000
3.0000 3.3333 3.6667
4.0000
4.2.4 幂运算
在MATLAB中,数组的幂运算的运算为:".^",表示每一个元素进行幂运算. >> g.^2 % 数组g每个元素的平方
ans =
1 4 9 16
25 36 49 64
81 100 121 144
>> g.^(-1) % 数组g的每个元素的倒数
ans =
1.0000 0.5000 0.3333 0.2500
0.2000 0.1667 0.1429 0.1250
0.1111 0.1000 0.0909 0.0833
>> 2.^g % 以g的每个元素为指数对2进行乘方运算
ans =
2 4 8 16
32 64 128 256
512 1024 2048 4096