Matlab矩阵与矩阵运算
程序员文章站
2022-05-22 13:06:23
...
MATLAB矩阵的表示
1.矩阵的建立
-
1.1 直接输入创建
最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。 -
1.2 利用已经创建好的矩阵组成
大矩阵可由已建好的小矩阵拼接而成。例如: -
1.3 生成特殊矩阵的函数
函数 | 特殊矩阵 |
---|---|
A.‘ | 矩阵转置 |
inv(A) | 矩阵求逆 |
sparse(A) | 稀疏矩阵 |
full(A) | 将稀疏矩阵转换为普通矩阵 |
eye(n) | n阶单位矩阵 |
zeros(m,n) | m×n的零矩阵 |
ones(m,n) | m*n的元素全为1的矩阵 |
rand(m,n) | m*n的随机矩阵,元素在0-1间均匀分布 |
randn(m,n) | m*n的正态随机矩阵 |
randperm(n) | 生成1-n之间的整数随机排列 |
magic(n) | n阶魔方矩阵 |
hilb(n) | n阶希尔伯特矩阵 |
pascal(n) | n阶帕斯卡矩阵 |
flipud(A) | 将矩阵上下翻转 |
fliplr(A) | 将矩阵左右翻转 |
rot90(A,k) | 将矩阵旋转90°的k倍,k为1时可省略 |
diag(A,k) | 从第k条对角线,获取矩阵的对角线元素,k可省略 |
tril(A,k) | 从第k条对角线开始生成下三角矩阵,k可省略 |
triu(A,k) | 从第k条对角线开始生成上三角矩阵,k可省略 |
2.矩阵的引用
- 1.矩阵元素的引用方式
MATLAB通过下标引用矩阵的元素,A(i,j)表示矩阵第i行第j列的元素。
也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。
显然,序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 - 2.获得子矩阵
① A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。
② A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。
③A(:)将矩阵A每一列元素堆叠起来,成为一个列向量,而这也是MATLAB变量的内部储存方式。
还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。 - 3.利用空矩阵删除矩阵的元素
在MATLAB中,定义[ ]为空矩阵。给变量X赋空矩阵的语句为X=[ ]。
注意,X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。
3.矩阵的函数
1. 矩阵的构造与操作
zeros 生成元素全为0的矩阵
ones 生成元素全为1的矩阵
eye 生成单位矩阵
rand 生成随机矩阵
randn 生成正态分布随机矩阵
sparse 生成稀疏矩阵
full 将稀疏矩阵化为普通矩阵
diag 对角矩阵
tril 矩阵的下三角部分
triu 矩阵的上三角部分
flipud 矩阵上下翻转
fliplr 矩阵左右翻转
2. 矩阵运算函数
norm 矩阵或向量范数
normest 稀疏矩阵(或大规模矩阵)的2-范数估计
rank 矩阵的秩
det 方阵的行列式
trace 方阵的迹
null 求基础解系(矩阵的零空间)
orth 正交规范化
rref 矩阵的行最简形(初等行变换求解线性方程组)
subspace 计算两个子空间的夹角
3. 与线性方程有关的矩阵运算函数
inv 方阵的逆
cond 方阵的条件数
condest 稀疏矩阵1-范数的条件数估计
chol 矩阵的Cholesky分解(矩阵的平方根分解)
cholinc 稀疏矩阵的不完全Cholesky分解
linsolve 矩阵方程组的求解
lu 矩阵的LU分解
ilu 稀疏矩阵的不完全LU分解
luinc 稀疏矩阵的不完全LU分解
qr 矩阵的正交三角分解
pinv 矩阵的广义逆
4. 与特征值或奇异值有关的矩阵函数
eig 方阵的特征值与特征向量
svd 矩阵的奇异值分解
eigs 稀疏矩阵的一些(默认6个)最大特征值与特征向量
svds 矩阵的一些(默认6个)最大奇异值与向量
hess 方阵的Hessenberg形式分解
schur 方阵的Schur分解