第2章 矩阵 2.1 矩阵与向量
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 构造对角矩阵 设V为具有m个元素的向量,diag(V)将产生一个m×m对 角矩阵,其主对角线元素即为向量V的元素。 diag(V)函数也有另一种形式diag(V,k),其功能是产生一 个n×n(n=m+)对角阵,其第k条对角线的元素即为向量V的 元素。 >> diag(V,1) 例:V=[1 2 3] ans = >> diag(V) 0 1 0 0 ans = 0 0 2 0 1 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 3 例:先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行 乘以2,…,第五行乘以5。 A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19] D=diag(1:5) D*A %用D左乘A,对A的每行乘以一个指定常数
x=s:d:f
其中 s=起始值或初始化值;d=增量或减量值;f=结束值或终值。
因此,可产生如下的行向量x: x=[s s+d s+2d …s+nd]
其中s+nd=f
注意: ⑴ 在创建向量x时没有直接指定n的数值,s、d和f 可以 是数值、变量和表达式的任意组合。 ⑵ 当d省略时,MATLAB默认d=1,即x=s : f 例如:x=[s,s+1,s+2,…,s+n] 其中s+n=f ⑶ 向量x中元素的个数由式n=length(x)确定。 2、指定n为从s到f的等间隔值
例:A=[1 3 7;2 4 8;3 6 8], >> triu(A) ans = 1 0 3 4 7 8 >> triu(A,-1) ans = 1 2 0 3 4 6 7 8 8
0 0 七、矩阵的旋转
A =
8
1、利用函数rot90(A,k)将矩阵A旋转90º 的k倍,当k为1时可省略。
>> rot90(A,1)
第2章 矩阵
2.1 矩阵与向量 2.2 向量的创建
2.3 矩阵的创建 2.4 矩阵的运算
§2.1 矩阵与向量
一、矩阵
由m行n列构成的数组a称为(m×n)阶矩阵,它总共由 (m×n )个元素组成并按如下的形式排列:
a11 a12 a1n a a a 22 2n a 21 m n a m1 a m 2 a mn
3、由现有向量创建新向量
(1)如要创建一个由z的第三到第五个元素组成的新向量x,则 x=z(3:5) (2)如要创建一个由z的前两个元素和后两个元素组成的向量x, 则x=[z(1) z(2) z(6) z(7)] 或 x=[z(1,2,6,7)]
4、确定向量中元素的个数 用length命令,即n=length(x)
f s n 1
三、向量中元素值的获取 1、行向量 行向量b=[b1 b2 b3…bn],可用b(3)或b(1,3)获得第三个元素b3。 2、列向量 列向量b=[b1 b2 b3…bn]’,可用b(3)或b(3,1)获得第三个元素b3。
例:创建[-2,1,3,5,7,9,10]的向量x,可通过下式实现:
(2) 建立一个3×2零矩阵。 zeros(3,2)
(3) 设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵 A同样大小零矩阵。 A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A zeros(size(A)) %产生一个与矩阵A同样大小的零矩阵
例2-2 建立随机矩阵: (1) 在区间[20,50]内均匀分布的5阶随机矩阵。 x=20+(50-20)*rand(5) (2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。 y=0.6+sqrt(0.1).*rand(5) 此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保 持不变的前提下,将矩阵A重新排成m×n的二维矩阵。 魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上 的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共 n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n), 其功能是生成一个n阶魔方阵。
t1 v t 2 t 3
t1 t2 t3
t1 t2 t3
t1 t2 t3
函数meshgrid也可以返回一个矩阵,如:w= meshgrid(s,t), 生成w=u。
四、向量和矩阵创建举例 例2-1 分别建立3×3、3×2和与矩阵A同样大小的零矩阵。 (1) 建立一个3×3零矩阵 zeros(3)
注:矩阵的元素记为aij, 其中,i 表示行,j 表示 列。
矩阵的大小可用如下命令获得: (1)size(a)----size可显示出两个值,第一个值为行数(m),第 二个值为列数(n)。 (2)[m,n]=size(a)----表示矩阵的行数赋给m,列数赋给n。
二、方阵
当m=n时,a称为方阵。
三、对角阵
三、矩阵元素的访问 应用上面的例子说明:
3 a 20.0 1 5 20.25 1 7 20.5 1 9 20.75 1 11 21.0 1
a(1,1)→3 a(3,4)→1 a(:,2)→[5 20.25 1]’ a(2,:)→[20.0 20.25 20.5 20.75 21.0] a(1:3,3:5)→[7 9 11;20.5 20.75 21.0;1 1 1] 四、创建矩阵的函数 1、函数repmat的调用格式为w=repmat(x,r,c) 其中x可以是标量、向量或矩阵,r是x的行数、c是x的列 数。函数repmat可创建任意长度的列向量和行向量,而且每 个元素都具有相同的值。
注意:以上几种形式中,可以是数值、变量、表达式或字符串。 如果它们是变量或表达式,则所有变量及由变量构成的表达式必 须先定义;并且在执行语句之前,每一个变量必须先赋值。如果 是字符串,则每一行中的字母个数应相同。
二、用函数生成矩阵的元素 1、one=ones(r,c) 可创建一个元素为1的(r×c)阶矩阵。 例1:one=ones(2,5),创建一个(2×5)阶矩阵: 11111 11111 2、zero=zeros(r,c) 可创建一个元素为0的(r×c)阶矩阵。 例2: zero=zeros(3,2), 创建一个(3×2)阶零矩阵: 例3:对于(3×5)阶矩阵:
x=[-2 1:2:9 10] 或x=[-2,1,3,5,7,9,10]
四、向量操作的几个命令 1、向量与标量进行加减运算时,标量与向量中的每一个元素 相加减。 例: z=x-1的结果为 z=[-3 0 2 4 6 8 9] 2、可以修改向量中的某些元素。 例:z中的第二个元素除以2,可写为z(2)= z(2)/2。
1
2 3
3
4 6
7
8 8
ans =
7 3 1 8 4 2 8 6 3
2、矩阵的左右翻转 对矩阵实施左右翻转是将原矩阵的第一列和最后一列调 换,第二列和倒数第二列调换,…,依次类推。MATLAB对 矩阵A实施左右翻转的函数是fliplr(A)。 3、矩阵的上下翻转
MATLAB对矩阵A实施上下翻转的函数是flipud(A)。
六、对角阵与三角阵 1、对角阵 只有对角线上有非0元素的矩阵称为对角矩阵,对角线 上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都 为1的对角矩阵称为单位矩阵。 (1)提取矩阵的对角线元素 设A为m×n矩阵,diag(A)函数用于提取矩阵A主对角线 元素,产生一个具有min(m,n)个元素的列向量。 diag(A)函数还有一种形式diag(A,k),其功能是提取第k 条对角线的元素。(中间为0条,下负,上正) 例:A=[4,-65,-54,0,6;56,0,67,-45,0]B=[4,-65,-54;0,6,56;0,67,-45] >> diag(A) ans = 4 0 >> diag(B,0) ans = 4 6 -45 >> diag(B,2) ans = -54
§2.3 矩阵的创建
一、矩阵创建的基本方法 对于(4×3)阶矩阵a:
a11 a a 21 a 31 a 41
v 1 a11 a12
a12 a 22 a 32 a 42
a13
a13 a 23 ( 4 3) a 33 a 43
可以有以下几种方 法来创建:
四、列矩阵和行矩阵
2、行矩阵 当 aij = a1j(即只有一行时),称为行矩阵或者行向量, 记做:
a a11 a12 a1n a1 a2 an (1 n)
注:在MATLAB中,这是向量的默认定义。 五、矩阵和向量的转置 矩阵的转置用(’)表示:
a11 a T a ' 12 a1n a21 ... am1 a22 ... am 2 ( n m) a2 n ... amn
1、先创建向量,再创建矩阵
v 2 a21 v 3 a31
v 4 a41
a22 a32
a42
a23 a33
a43
a v 1;
v2;
v3 ;
v4
注:其中分号表示行的结束。
2、直接创建矩阵 a=[a11 a12 a13;a21 a22 a23;a31 a32 a33;a41 a42 a43] 或形象的描述方法: a=[ a11 a12 a13;… a21 a22 a23;… 其中省略号是必须的。 a31 a32 a33;… a41 a42 a43] 或通过在每一行的末尾处按下Enter键来完成: a=[ a11 a12 a13 a21 a22 a23 a31 a32 a33 a41 a42 a43]
5 7 9 11 3 (3 5) a 20 . 0 20 . 25 20 . 5 20 . 75 21 . 0 1 1 1 1 1
00 00 00
可通过如下语句创建: a=[3:2:11;linspace(20,21,5);ones(1,5)] 3、eye=eye(r,c) 可创建一个 (r×c)阶的单位矩阵。
x=linspace(s,f,n)
其增量或减量值d由MATLAB通过下式计算: 因此,linspace可创建如下的向量: x=[s,s+d,s+2d,…,s+(n-1)d] 注意:⑴ s和f的值可以为正也可以为负,并允许s>f或s<f。 ⑵ 如果没有指定n的值,MATLAB给出默认值n=100。
d
2、函数meshgrid的调用格式为:[u,v]= meshgrid(s,t) 注:其中s,t是两个行向量 例:如果s=[s1 s2 s3 s4],t=[t1 t2 t3],则上述命令生成两个(3×4) 阶矩阵:
s1 u s1 s1
s2 s2 s2
s3 s3 s3
s4 s4 s4
当aij =0,i≠ j,且m=n时 ,得到对角阵:
a11 0 a 0 0 a 22 0 0 0 n n a nn
a11 a1 a a 1、列阵 a 21 2 (m 1) 当 aij = ai1(即只有一列时), 称为列矩阵或者列向量,记做: a m1 a m
Biblioteka Baidu
§2.2 向量的创建
一、向量 向量可以表示为:f=[a x b …]或f=[a,x,b,…] 其中a,x,b,…可以是变量、数值、表达式或字符串。 注:如果它们是变量或表达式,则所有变量及由这些变量所 构成的表达式必须先定义;并且在执行语句之前,每一个变 量必须先赋值。 例:如果a是一个表达式,则表达式字符和运算符之间无空格。 如果a=h+dg,则f可以写成: f=[h+d^g x b …]或f=[h+d^g,x,b,…] 二、向量创建的两个主要方法 1、使用冒号来指定数值范围和相邻值的步长
2.三角阵 三角阵又进一步分为上三角阵和下三角阵,所谓上三角 阵,即矩阵的对角线以下的元素全为0的一种矩阵,而下三角 阵则是对角线以上的元素全为0的一种矩阵。 (1) 上三角矩阵 求矩阵A的上三角阵的MATLAB函数是triu(A)。triu(A)函 数也有另一种形式triu(A,k),其功能是求矩阵A的第k条对角线 以上的元素。例如,提取矩阵A的第2条对角线以上的元素, 形成新的矩阵B。 (2) 下三角矩阵 在MATLAB中,提取矩阵A的下三角矩阵的函数是tril(A) 和tril(A,k),其用法与提取上三角矩阵的函数triu(A)和triu(A,k) 完全相同。