对角矩阵:只有对角线上有非零元素的矩阵。
数量矩阵:对角线上的元素相等的对角矩阵。
单位矩阵:对角线上的元素都为1的对角矩阵。
diag(A):提取矩阵A主对角线元素,产生一个列向量。
diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量。
diag(V):以向量V为主对角线元素,产生对角矩阵。
diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。
上三角阵:矩阵的对角线以下的元素全为零的矩阵。
下三角阵:对角线以上的元素全为零的矩阵。
triu(A):提取矩阵A的主对角线及以上的元素。
triu(A,k):提取矩阵A的第k条对角线及以上的元素。
得到的矩阵与原矩阵A同型,未被提取的元素所在位置为0。
在MATLAB中,提取矩阵A的下三角矩阵的函数是tril,其用法与triu函数完全相同。
在矩阵后加单引号'
实现转置。会这一种用法即可。
rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可省略。
fliplr(A):对矩阵A实施左右翻转。
flipud(A):对矩阵A实施上下翻转。
通过翻转可以实现分别求主副对角线之和。
求逆矩阵,一般用于解线性方程组。
把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为方阵所对应的行列式的值。
det(A):求方阵A所对应的行列式的值。
矩阵线性无关的行数或列数称为矩阵的秩。
rank(A):求矩阵A的秩。
for i = 3:20
r(i) = rank(magic(i));
end
bar(r) % 柱状图,索引为x轴坐标,值为y轴坐标
grid on % 生成网格
axis([2, 21, 0, 20]) % 设置xy轴范围
没用的结论:
奇数阶魔方阵秩为n,即奇数阶魔方阵是满秩矩阵。
一重偶数阶魔方阵秩为n/2+2( n是2的倍数,但非4的倍数)。
双重偶数阶魔方阵秩均为3(阶数是4的倍数)。
axis的常见用法参考
axis( [xmin xmax ymin ymax] )
设置当前坐标轴 x轴 和 y轴的限制范围
axis off
去掉坐标轴
V=axis
返回包含当前坐标范围的一个行向量
axis ij
将坐标轴设置为矩阵模式。此时水平坐标轴从左到右取值,垂直坐标从上到下
axis equal
设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔
axis square
将坐标轴设置为正方形
矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。
trace(A):求矩阵A的迹。
trace(A)
sum(diag(A))
% 二者等价
E=eig(A)∶求矩阵A的全部特征值,构成向量E。
[X,D]=eig(A)∶求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量。
A = [1 1 0; 1 0 5; 1 10 2];
[X D] = eig(A)
结果如下:
X =
0.0722 0.9751 0.0886
0.5234 -0.0750 -0.6356
0.8490 -0.2089 0.7669
D =
8.2493 0 0
0 0.9231 0
0 0 -6.1723
D中的主对角线上的数为特征值,每一列的特征值对应的特征向量为X中的同列元素。
即,8.2493对应的特征向量为(0.0722 0.5234 0.8490)。
验证如下:
A = [1 1 0; 1 0 5; 1 10 2];
[X D] = eig(A);
D = ones(length(D)) * D
roundn(A*X, -4) == roundn(D.*X, -4)
结果如下:
D =
8.2493 0.9231 -6.1723
8.2493 0.9231 -6.1723
8.2493 0.9231 -6.1723
ans =
3×3 logical 数组
1 1 1
1 1 1
1 1 1
先将D的每一列元素都设置为所在列对应的特征值,让D方阵左乘一个全1方阵即可。
根据特征值和特征向量的定义, A x = λ x Ax = \lambda x Ax=λx;
左侧:将A方阵与X矩阵进行矩阵乘法,即*
;
右侧:将新得到的D矩阵与X矩阵对应位置相乘,即.*
;
判断二者对应位置是否相等即可。
但需要注意,二者计算得到的都是浮点数,存在一定的精度误差,所以直接判等是不相等的,因此我们保留小数点后四位,再进行判等,得到全1的逻辑矩阵。
roundn函数是四舍五入函数,调用格式为:roundn(number, n)
或roundn(A, n)
。其中number
和A
分别表示数字和由数字构成的矩阵,n
表示要保留的位数,当n
为正数时表示四舍五入保留到小数点前第几位,当n
为负数时表示四舍五入保留到小数点后第几位。