目录
一、特殊矩阵
zeros函数:产生全0矩阵,即零矩阵。
ones函数:产生全1矩阵,即幺矩阵。
eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。
rand函数:产生(0,1)区间均匀分布的随机矩阵。
randn函数:产生均值为0,方差为1的标准正态分布随机矩阵。
1.zeros函数的调用格式
zeros(m):产生m*m零矩阵。
zeros(m,n):产生m*n零矩阵。
zeros(size(A)):产生与矩阵A同样大小的零矩阵。
其中,size函数返回矩阵A的行数列数组成的向量
例子:
>> A=zeros(2,3)
A =
0 0 0
0 0 0
>> zeros(size(reshape(A,3,2)))
ans =
0 0
0 0
0 0
其中,
reshape函数将A转换为3行2列的函数。
例子:
首先产生5阶两位随机整数矩阵A,再产生均值为0.6、方差为0.1的5阶正态分布随机矩阵B,最后验证(A+B)L = LA+LB(其中L为单位矩阵)。
rand函数:产生(0,1)开区间均匀分布的随机数x。
fix(a+(b - a + 1)*x):产生[a,b]区间上均匀分布的随机整数。
randn函数:产生均值为0、方差为1的标准正态分布随机数x。
u + 西格玛x:得到均值为u,方差为西格玛的平方的随机数。
double是MATLAB中默认数值数据类型,它可为大多数计算提供足够的精度。数值变量自动存储为64位(8字节)双精度浮点值。
>> A=fix(10+(99-10+1)*rand(5));
>> B=0.6+sqrt(0.1)*randn(5);
>> C=eye(5);
>> (A+B)*C==C*A+B*C
ans =
5×5 logical 数组
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
其中,sqrt,平方根。
logical 将数值转换未逻辑值。
语法:L=logical(A) 将 A
转换为一个逻辑值数组。A
中的任意非零元素都将转换为逻辑值 1
(true
),零则转换为逻辑值 0
(false
)。复数值和 NaN 不能转换为逻辑值,因此会导致转换错误。
2.用于专门学科的特殊矩阵
魔方矩阵 Magic Square
>> M=magic(3)
M =
8 1 6
3 5 7
4 9 2
n阶魔方阵由1、2、3、... 、n方共n方个整数组成,且每行、每列以及主、副对角线上各n个元素之和都相等。
n阶魔方阵每行每列元素的和为(1+2+3+...+n方)/n = (n + n三次方)/2。
MATLAB函数magic(n)产生一个特定的魔方阵。
例子:产生8阶魔方阵,求其每行每列元素的和。
>> M=magic(8);
>> sum(M(1,:))
ans =
260
>> sum(M(:,1))
ans =
260
范德蒙矩阵
在MATLAB中,函数vander(V)生成以向量V为基础的范德蒙(Vandermonde)矩阵。
>> A=vander(1:5)
A =
1 1 1 1 1
16 8 4 2 1
81 27 9 3 1
256 64 16 4 1
625 125 25 5 1
范德蒙矩阵常用在各种通信系统的纠错编码中,例如,常用的Reed-Solomon编码即以范德蒙矩阵为基础。
希尔伯特矩阵
在MATLAB中,生成n阶希尔伯特矩阵的函数时hilb(n)
>> format rat
>> H=hilb(4)
H =
1 1/2 1/3 1/4
1/2 1/3 1/4 1/5
1/3 1/4 1/5 1/6
其中,rat为转换成有理数的形式输出,有理分式近似值
伴随矩阵
MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂系数排在后面。
>> p=[1,-2,-5,6];
>> A=compan(p)
A =
2 5 -6
1 0 0
0 1 0
伴随矩阵特征值的根等于多项式的根
帕斯卡矩阵
杨辉三角形表是二项式 (x+y)^n 展开后的系数随自然数 n 的增大组成的一个三角形表。
如4阶帕斯卡矩阵为:
Pascal(4)=
[1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20]
对比杨辉三角:
以上即为杨辉三角的排列性质
pascal是矩阵实验室(Matrix Laboratory)MATLAB中的函数,利用pascal函数可以在矩阵实验室中方便的得到任意阶帕斯卡矩阵。设A为帕斯卡矩阵,则在MATLAB命令窗口中输入A=pascal(n),n为正整数,可得到阶数为n的帕斯卡矩阵。
Pascal矩阵的第一行元素和第一列元素都为1,其余位置处的元素是该元素的左边元素加上同列中行数小于其的其他元素。例如:a(i,j)=a(i,j-1)+a(i-1,j-1)+……+a(1,j-1)。
>> format rat
>> P=pascal(5)
P =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
>> inv(P)
ans =
5 -10 10 -5 1
-10 30 -35 19 -4
10 -35 46 -27 6
-5 19 -27 17 -4
1 -4 6 -4 1 </