本章主要内容:3.1 特殊矩阵3.2 矩阵变换3.3 矩阵求值3.4 矩阵的特征值与特征向量3.5 字符串处理3.6 结构数据和单元数据3.7 稀疏矩阵
3.1 特殊矩阵
3.1.1 通用的特殊矩阵常用的产生通用特殊矩阵的函数有:(1)zeros:产生全0矩阵(零矩阵)。(2)ones:产生全1矩阵(幺矩阵)。 (3)eye:产生单位矩阵。(4)rand:产生0~1间均匀分布的随机矩阵。(5)randn:产生均值为0,方差为1的标准正态分布随机矩阵。它们的
调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。其调用格式是:(1)zeros(m):产生m×m零矩阵。(2)zeros(m,n):产生m×n零矩阵。当m=n时,等同于zeros(m)。(3)zeros(size(A)):产生与矩阵A同样大小的零矩阵。 例3-1 分别建立3×3、3×2和与矩阵A同样大小的零矩阵。(1)建立一个3×3零矩阵。>> zeros(3)ans = 0 0 0 0 0 0 0 0 0(2)建立一个3×2零矩阵。>> zeros(3,2)ans = 0 0 0 0 0 0(3)可以用zeros(size(A))建立一个与矩阵A同样大小的零矩阵。>> A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A>> zeros(size(A)) %产生一个与矩阵A同样大小的零矩阵ans = 0 0 0 0 0 0例3-2 建立随机矩阵:(1)在区间[20,50]内均匀分布的5阶随机矩阵。(2)均值为0.6、方差为0.1的5阶正态分布随机矩阵。 产生(0,1)区间均匀分布随机矩阵使用rand函数,假设得到了一组满足(0,1)区间均匀分布的随机数xi,则若想得到在任意[a,b]区间上均匀分布的随机数,只需用
yi=a+(b-a)xi计算即可。产生均值为0、方差为1的标准正态分布随机矩阵使用randn函数,假设已经得到了一组标准正态分布随机数xi,如果想更一般地得到均值为μ、方差为σ2的随机数,可用yi=μ+σxi计算出来。 >> x=20+(50-20)*rand(5)>> y=0.6+sqrt(0.1)*randn(5)
3.1.2 用于专门学科的特殊矩阵
(1) 魔方矩阵 魔方矩阵有一个有趣的性质,其
每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。例3-3 将[101,125]范围内的25个整数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。一个5阶魔方矩阵的每行、每列及对角线的和均为65,对其每个元素都加100后这些和变为565。完成其功能的命令如下:>> M=100+magic(5)M = 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
(2) 范得蒙矩阵 范得蒙矩阵
最后一列全为1,倒数第2列为一个指定的向量,其他各列是其后一列与倒数第2列对应元素的乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。例如,A=vander([1;2;3;5])即可得到上述范得蒙矩阵。
下面是一个范得蒙(Vandermonde)矩阵的实例: