第3章 MATLAB矩阵分析与处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.矩阵的旋转 在MATLAB中,可以很方便地以90。为单位对矩 阵
按逆时针方向旋转。利用函数rot90(A,k)将矩阵A 旋
转90º的k倍,当k为1时可省略。例如,将A按逆时
A=针[57,19,38;-2,31,8;0,84,5]; rot90(A,4)
B旋=转rot9900。(A,) 命令如下:
命令如下: x=20+(50-20)*rand(5)
x= 48.5039 42.8629 38.4630 32.1712 21.7367 26.9342 33.6940 43.7581 48.0641 30.5860 38.2053 20.5551 47.6544 47.5071 44.3950 34.5795 44.6422 42.1462 32.3081 20.2958 46.7390 33.3411 25.2880 46.8095 24.1667
M=
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
117 124 101 108 115 123 105 107 114 116 104 106 113 120 122 110 112 119 121 103 111 118 125 102 109
1 5
diag(A)函数还有一种形式diag(A,k),其功能是提取第 k条对角线的元素。与主对角线平行,往上为第1条,第2条, …,第n条对角线,往下为第-1条,第-2条,…,第-n条对 角线。主对角线为第0条对角线。例如对上面建立的A矩阵, 提取主对角线两侧对角线的元素,命令如下:
D1=diag(A,1) D1 =
机 矩阵。
这几个函数的调用格式相似,下面以产生零矩 阵的zeros函数为例进行说明。其调用格式为: zeros(m): 产生m×m零矩阵 zeros(m,n) 产生m×n零矩阵 zeros(size(A)) 产生与矩阵A同样大小的零矩阵。
例3.1 分别建立3×3、3×2和与矩阵A同样大小的零矩阵 (1) 建立一个3×3零矩阵。
角 线的元素即为向量V的元素。
diag(1:3,-1) ans =
0000 1000 0200 0030
例3.6 先建立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];
ans =
0 7 -6
10 0
01 0
(6) 帕斯卡矩阵 我们知道,二次项(x+y)n展开后的系数随n的增
大组成一个三角形表,称为杨辉三角形。由杨辉三 角形表组成的矩阵称为帕斯卡(Pascal)矩阵。函数 pascal(n)生成一个n阶帕斯卡矩阵。
例3.5 求(x+y)5的展开式。
在MATLAB命令窗口,输入命令: pascal(6) pascal(6)
阶魔方阵。
magic(3) ans =
816 357 492
例3.3 将101-125等25个数填入一个5行5列的表 格
中,使其每行每列及对角线的和均为565。 一个5姐魔方矩阵的每行、每列及对角线的和
均为65,对其每个元素都加100后,这些和变成
ma5g6ic5(5. )
ans =
M=100+magic(5)
0.7672 0.6694 0.3085 -0.0864 0.5813
3.1.2 用于专门学科的特殊矩阵
(1) 魔方矩阵 魔方矩阵有一个有趣的性质,其每行、每列及
两条对角线上的元素和都相等。对于n阶魔方阵, 其
元素由1,2,3,…,n2共n2个整数组成。MATLAB提供
了求魔方矩阵的函数magic(n),其功能是生成一个 n
第3章 MATLAB矩阵分析与处 理
第3章 MATLAB矩阵分析与处理
特殊矩阵 矩阵结构变换 矩阵求逆与线性方程组求解 矩阵求值
3.1 特殊矩阵
3.1.1 通用的特殊矩阵 常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态分布随
D=diag(1:5); D*A %用D左乘A,对A的每行乘以一个指定常数 ans =
17 0 1 0 15 46 10 14 28 32 12 0 39 0 66 40 48 76 84 12 55 90 125 10 95
对A的每列元素 乘以同一个数, 可以用一个对角 阵右乘A.
2.三角阵 三角阵又进一步分为上三角阵和下三角阵,所
3.2.2 矩阵的转置与旋转 1.矩阵的转置
所谓转置,即把源矩阵的第一行变成目标矩阵 的第一列,第二行变成第二列,…,依此类推。显 然,一个m行n列的矩阵经过转置运算后,变成一
个 n行m列的矩阵。转置运算符是单撇号(‘)。
A=[71,3,-8;2,-9,8;0,4,5]; B=A' B=
71 2 0 3 -9 4 -8 8 5
希尔伯特矩阵
希尔伯特(Hilbert)矩阵的每个元素hij

i

1 j
. 1
在MATLAB中,生成希尔伯特矩阵的函数是
hilb(n).
使用一般方法求逆会因为原始数据的微小扰动而产
生不可靠的计算结果。MATLAB中,有一个专门求 希
3,5,2,99]; B=triu(A,2) B=
00105 0 0 0 4 16 0 0 0 0 42 00000 00000
(2) 下三角矩阵 在MATLAB中,提取矩阵A的下三角矩阵的函
数是 tril(A)和tril(A,k),其用法与提取上三角矩阵的 函数triu(A)和triu(A,k)完全相同。
zeros(3) ans=
000 000 000 (2) 建立一个3×2零矩阵。 zeros(3,2) ans= 00 00 00
(3) 设A为2×3矩阵,则可以用zeros(size(A))建立一个与 矩阵A同样大小零矩阵。
A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A zeros(size(A)) %产生一个与矩阵A同样大小的零矩阵



an1 an
an2 an
an3 an
a1 an

a0 an


1
0
0
0 0
称矩阵:A


0
1
0
0
0





0
0
0 1 0 0
0
0
0 01
0
为多项式p( x)的伴随矩阵。p( x)成为A的特征多项式,方程
p( x)的根成为A的特征值。
MATLAB生成伴随矩阵的函数是compan(p), 其 中p是一个多项式的系数向量,高次幂系数排在前, 低次幂排在后。例如,为了求多项式的x3-7x+6的 >伴> p=[1,0,-7,6]; 随>矩> c阵om,p可an使(p用) 命令:
谓上三角阵,即矩阵的对角线以下的元素全为0的一 种矩阵,而下三角阵则是对角线以上的元素全为0的 一种矩阵。
(1) 上三角矩阵
与矩阵A对应的上三角阵B是与A同型的一个矩阵,并且B 的对角线以上(含对角线)和A对应相等,而对角线以下的 元素等于0。求矩阵A的上三角阵的MATLAB函数是triu(A)。 例如,提取矩阵A的上三角元素,形成新的矩阵B。 A=[7,13,-28;2,-9,8;0,34,5]; B=triu(A) B=
ans = 11111 1 12345 6 1 3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 1 6 21 56 126 2
矩阵次对角线上的元素1,5,10,10,5,1即为展开式
的系数。
3.2 矩阵结构变换
3.2.1 对角阵与三角阵 1.对角阵
只有对角线上有非0元素的矩阵称为对角矩阵, 对角线上的元素相等的对角矩阵称为数量矩阵,对 角线上的元素都为1的对角矩阵称为单位矩阵。
y=0.6+sqrt(0.1)*randn(5)
y= 0.8713 0.9966 0.0960 0.1443 0.7806
0.4735 0.8182 0.8579 0.8251 1.0080
0.8114 0.9766 0.2197 0.5937 0.5504
0.0927 0.6814 0.2659 1.0475 0.3454
16 -120 240 -140 -120 1200 -2700 1680 240 -2700 6480 -4200 -140 1680 -4200 2800
(4) 托普利兹矩阵
托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个
元素都与左上角的元素相同。生成托普利兹矩阵的函数是
toeplitz(x,y),它生成一个以x为第一列,y为第一行的托
2 6
D2=diag(A,-1) D2 =
4
(2) 构造对角矩阵 设V为具有m个元素的向量,diag(V)将产生一
个m×m对角矩阵,其主对角线元素即为向量V的元 素
diag([1,2,-1,4]) ans =
1000 0200 0 0 -1 0 0004
diag(V)函数也有另一种形式diag(V,k),其功 能是产生一个n×n(n=m+|k|)对角阵,其第k条对
矩阵对角线有很多性质,如转置矩阵时对角线元 素不变,相似变换时对角线的和(称为矩阵的迹) 不变等。
(1) 提取矩阵的对角线元素
设A为m×n矩阵,diag(A)函数用于提取矩阵A主对角线 元素,产生一个具有min(m,n)个元素的列向量。
>> A=[1 2 3;4 5 6]; >> D=diag(A) D=
尔伯特矩阵的逆的函数invhilb(n),其功能是求n阶
的希尔伯特矩阵的逆矩阵。
例3.4 求4阶希尔伯特矩阵及其逆矩阵。 命令如下:
hilb(4) ans =
1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6
1/4 1/5 1/6 1/7
invhilb(4) ans =
B=
ans = 57 19 38
38 8 5
-2 31 8
19 31 84
0 84 5
57 -2 0
3.矩阵的左右翻转 对矩阵实施左右翻转是将原矩阵的第一列和最后
一列调换,第二列和倒数第二列调换,…,依次类
推。MATLAB对矩阵A实施左右翻转的函数是 fliplr(A)
A=[14,-9,8;-2,81,8;-2,4,0] A=
ans= 000 000
例3.2 建立随机矩阵:
(1) 在区间[20,50]内均匀分布的5阶随机矩阵。
(2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。
rand:产生0~1间均匀分布的随机矩阵。
要得到[a,b]区间上均匀分布的随机数,需用yi=a+(b-a)xi randn:产生均值为0,方差为1的标准正态分布随机矩阵。
(2) 范得蒙德矩阵 范得蒙德(Vandermonde)矩阵最后一列全为1,
倒数第二列为一个指定的向量,其他各列是其后列
与倒数第二列的点乘积。可以用一个指定向量生成
一个范得蒙矩阵。在MATLAB中,函数vander(V) 生
成以向量V为基础向量的范得蒙矩阵。例如,
AA ==vander([1;2;3;5])即可得到上述范得蒙矩阵。
14 -9 8 -2 81 8 -2 4 0 B=fliplr(A) B= 8 -9 14 8 81 -2 0 4 -2
4.矩阵的上下翻转 与矩阵的左右翻转类似,矩阵的上下翻转是将
原矩阵的第一行与最后一行调换,第二行与倒数第 二行调换,…,依次类推。 MATLAB对矩阵A实施上下翻转的函数是
7 13 -28 0 -9 8 005
triu(A)函数也有另一种形式triu(A,k),其功能是求矩
阵A的第k条对角线以上的元素。例如,提取矩阵A的第2条对
角线以上的元素,形成新的矩阵B。 A=[1,32,1,0,5;3,5,17,4,16;4,0,13,0,42;70,11,9,21,3;11,6
普利兹矩阵。这里x, y均为向量,两者不必等长,toeplitz(x)
用向量x生成一个对称的托普利兹矩阵。如:T=toeplitz(1:6)
T=toeplitz(1:4)
T=
1
2
3
4
2
1
2
3
3
2
1
2
4
3
2
1
(5) 伴随矩阵
设多项式p(x)为:p(x) an xn an1xn1 a1x a0
相关文档
最新文档