直接创建
创建特殊矩阵
函数 | 功能 | 函数 | 功能 |
---|---|---|---|
compan | 创建伴随矩阵 | magic | 创建魔方矩阵 |
diag | 创建对角矩阵 | ones | 创建全1矩阵 |
eye | 创建单位矩阵 | rand | 创建均匀分布随机矩阵 |
gallery | 创建测试矩阵 | randn | 创建正态分布随机矩阵 |
hadamars | 创建Hadamard矩阵 | rosser | 创建经典对称特征值测试矩阵 |
hilb | 创建Hilbert矩阵 | wilkinson | 创建Wilkinson特征值测试矩阵 |
invhilb | 创建Hilbert矩阵转置 | zeros | 创建全0矩阵 |
【例】创建二位特殊数组
>> clear all;
>> magic(3) %创建3*3维魔方矩阵
ans =
8 1 6
3 5 7
4 9 2
>> rand(2,4) %创建2*4维均匀分布数组
ans =
0.8147 0.1270 0.6324 0.2785
0.9058 0.9134 0.0975 0.5469
>> randn(2,4) %创建2*4维高斯正态随机分布矩阵
ans =
3.5784 -1.3499 0.7254 0.7147
2.7694 3.0349 -0.0631 -0.2050
>> ones(3,2) %创建3*2维全1矩阵
ans =
1 1
1 1
1 1
>> zeros(2,2) %创建2*2维全0矩阵
ans =
0 0
0 0
>> eye(3) %创建3*3阶单位矩阵
ans =
1 0 0
0 1 0
0 0 1
>> hilb(4) %创建4*4阶Hilbert矩阵
ans =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
>> hadamard(4) %创建4*4阶Hadamard矩阵
ans =
1 1 1 1
1 -1 1 -1
1 1 -1 -1
1 -1 -1 1
操作符号 | 说明 | 操作符号 | 说明 |
---|---|---|---|
+ | 矩阵加法 | / | 矩阵左除 |
- | 矩阵减法 | . | 矩阵的点乘运算 |
* | 矩阵乘法 | logm | 矩阵的对数运算 |
^ | 矩阵的幂 | expm | 矩阵的指数运算 |
\ | 矩阵右除 | sqrtm | 矩阵的开方运算 |
变形函数
函数名 | 说明 | 函数名 | 说明 |
---|---|---|---|
rot90 | 矩阵逆时针旋转90° | flipdim | 矩阵的某维元素翻转 |
flipud | 矩阵上下翻转 | shiftdim | 矩阵的元素移位 |
fliplr | 矩阵左右翻转 | reshape | 矩阵的合并 |
【例】改变矩阵的形状
>> A = [1 2 3; 4 5 6; 7 8 9;10 11 12]
A =
1 2 3
4 5 6
7 8 9
10 11 12
>> A3 = reshape(A,3,4) %矩阵的重排
A3 =
1 10 8 6
4 2 11 9
7 5 3 12
>> A1 = reshape(A,2,6) %矩阵的重排
A1 =
1 7 2 8 3 9
4 10 5 11 6 12
>> A = magic(3)
A =
8 1 6
3 5 7
4 9 2
>> flipud(A) %矩阵A的上下翻转
ans =
4 9 2
3 5 7
8 1 6
>> fliplr(A) %矩阵A的左右翻转
ans =
6 1 8
7 5 3
2 9 4
>> rot90(A) %矩阵A逆时针翻转90°
ans =
6 7 2
1 5 9
8 3 4
>> rot90(A,3) %矩阵A逆时针翻转270°
ans =
4 3 8
9 5 1
2 7 6
>> flipdim(A,2) %矩阵A每一行进行逆序排列
ans =
6 1 8
7 5 3
2 9 4
1.行列式的转置: 运算符“ ’ ”
2.方阵的行列式:det(A)函数
3.矩阵的逆和伪逆:inv(A)函数和pinv(A)函数
4.求矩阵和向量的范数:norm函数
5.矩阵的秩:rank函数
6.矩阵的迹:即矩阵对角线元素的和以及特征值的和,函数trace(A)
MATLAB中,定义[]为空矩阵。X= []给变量X赋空矩阵。
因此将某些元素从矩阵中删掉,采用将其置为空矩阵的方法就是一种有效方法。
>> A = [1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18]
A =
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
>> A(:,[2,4]) = [] % A(:,[2,4]) = []等同于A(:,2:2:4) = []
A =
1 3 5 6
7 9 11 12
13 15 17 18
矩阵的分解运算是指将给定的矩阵分解成特殊矩阵乘积的过程。
R = chol(A):返回cholesky分解(柯利分解)因子R
R = chol(A,‘lower’):把矩阵A分解为一个下三角矩阵
矩阵的正交分解即将矩阵A分解成一个正交矩阵与一个上三角矩阵的乘积。
[Q,R] = qr(A):返回正交矩阵Q和上三角矩阵R,满足A = QR。
又称矩阵的三角分解,是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A= LU。
[L,U] = lu(A):L为单位下三角矩阵或其变换形式,U为上三角矩阵
[L,U,P] = lu(A):L为单位下三角矩阵,U为上三角矩阵,P为置换矩阵,满足LU = PA。
d = eig(A):求矩阵A的全部特征值,构成向量d。
d = eig(A,B):求矩阵A与矩阵B的特征值,且A、B为方阵。
[V,D] = eig(A):求矩阵A全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。
[V,D] = eig(A,‘nobalance’):直接求A的特征值与特征向量。
[V,D] = eig(A,B):求方阵A、B的特征值,构成对角阵D,并求特征向量构成V的列向量,并且A * V = B * V * D。
>> X = pascal(4) %杨辉三角
X =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
>> [V,D] = eig(X)
V =
0.3087 -0.7873 0.5304 0.0602
-0.7231 0.1632 0.6403 0.2012
0.5946 0.5321 0.3918 0.4581
-0.1684 -0.2654 -0.3939 0.8638
D =
0.0380 0 0 0
0 0.4538 0 0
0 0 2.2034 0
0 0 0 26.3047