特殊向量和特殊矩阵
(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 | 魔方阵 |
gallery | Higham 测试阵 | rosser | 经典对称特征值测试阵 |
hadamard | Hardamard矩阵 | toeplitz | Toeplitz 矩阵 |
hankel | Hankel 矩阵 | pascal | Pascal 矩阵 |
hilb | Hilbert 矩阵 | vander | 范德蒙矩阵 |
invhilb | 反 Hilbert 矩阵 | wilkinson | Wilkinson’s 特征值测试矩阵 |