MATLAB 矩阵操作,三

特殊向量和特殊矩阵

(1)特殊向量

t=[0:0.1:10] %产生从 0 到 10 的行向量,元素之间间隔为 0.1

t=linspace(n1,n2,n)

%产生 n1 和 n2 之间线性均匀分布的 n 个数 (缺省 n 时,产生 100 个数)

t=logspace(n1,n2,n) (缺省 n 时,产生 50 个数)

%在和之间按照对数距离等间距产生 n 个数。

(2)特殊矩阵

i)单位矩阵

eye(m),

eye(m,n) 可得到一个可允许的最大单位矩阵而其余处补 0,

eye(size(a)) 可以得到与矩阵 a 同样大小的单位矩阵。

ii)所有元素为 1 的矩阵

ones(n),ones(size(a)),ones(m,n)。

iii)所有元素为 0 的矩阵

zeros(n),zeros(m,n)。

iv) 空矩阵是一个特殊矩阵,这在线性代数中是不存在的。例如

q=[ ]

矩阵 q 在工作空间之中,但它的大小为零。通过空矩阵的办法可以删除矩阵的行与列。例如

a(:,3)=[]

表示删除矩阵 a 的第 3 列。

v)随机数矩阵

rand(m,n) 产生 m×n 矩阵,其中的元素是服从[0,1]上均匀分布的随机数。

randint(m,n,[min,max]) 产生 m×n 矩阵,其中的元素是[min,max]上的随机整数。

normrnd(mu,sigma,m,n)产生 m×n 矩阵,其中的元素是服从均值为 mu,标准差为

sigma 的正态分布的随机数。

exprnd(mu,m,n) 产生 m×n 矩阵,其中的元素是服从均值为 mu 的指数分布的随机

数。

poissrnd(mu,m,n) 产生 m×n 矩阵,其中的元素是服从均值为 mu 的泊松(Poisson)分布的随机数。

unifrnd(a,b,m,n) 产生 m×n 矩阵,其中的元素是服从区间[a,b]上均匀分布的随机数。

r = mvnrnd(MU,SIGMA,cases) 产生 cases 对均值向量为 MU,协方差阵为 SIGMA的多维正态分布的随机数。

vi)随机置换

randperm(n)产生 1 到 n 的一个随机全排列。

perms([1:n])产生 1 到 n 的所有全排列。

vii)稀疏矩阵

稀疏矩阵是指矩阵中零元素很多,非零元素很少的矩阵。对于稀疏矩阵,只要存放非零元素的行标、列标、非零元素的值即可,可以按如下方式存储

(非零元素的行地址,非零元素的列地址),非零元素的值。

在 Matlab 中无向图和有向图邻接矩阵的使用上有很大差异。

对于有向图,只要写出邻接矩阵,直接使用 Matlab 的命令 sparse 命令,就可以把

邻接矩阵转化为稀疏矩阵的表示方式。

对于无向图,由于邻接矩阵是对称阵,Matlab 中只需使用邻接矩阵的下三角元素,即 Matlab 只存储邻接矩阵下三角元素中的非零元素。稀疏矩阵只是一种存储格式。Matlab 中,普通矩阵使用 sparse 命令变成稀疏矩阵,稀疏矩阵使用 full 命令变成普通矩阵。

一些特殊矩阵

函数功能函数功能
compan伴随阵magic魔方阵
galleryHigham 测试阵rosser经典对称特征值测试阵
hadamardHardamard矩阵toeplitzToeplitz 矩阵
hankelHankel 矩阵pascalPascal 矩阵
hilbHilbert 矩阵vander范德蒙矩阵
invhilb反 Hilbert 矩阵wilkinsonWilkinson’s 特征值测试矩阵