Matlab的对角阵、三角阵,矩阵变换:矩阵的转置、旋转、翻转、求逆、方阵的行列式、矩阵的秩求解

您所在的位置:网站首页 如何提取矩阵的对角线元素个数 Matlab的对角阵、三角阵,矩阵变换:矩阵的转置、旋转、翻转、求逆、方阵的行列式、矩阵的秩求解

Matlab的对角阵、三角阵,矩阵变换:矩阵的转置、旋转、翻转、求逆、方阵的行列式、矩阵的秩求解

2024-01-29 13:33| 来源: 网络整理| 查看: 265

对角阵

对角矩阵:主对角线之外的元素皆为0的矩阵。 数量矩阵:主对角线上的元素相等的对角矩阵。 单位矩阵:主对角线上的元素都为1的对角矩阵。

1. 提取矩阵的对角线元素(得到一个一维矩阵) diag(A):提取矩阵A主对角线元素,产生一个列向量。 diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量。

>> A=rand(4) A = 0.8147 0.6324 0.9575 0.9572 0.9058 0.0975 0.9649 0.4854 0.1270 0.2785 0.1576 0.8003 0.9134 0.5469 0.9706 0.1419 >> diag(A) ans = 0.8147 0.0975 0.1576 0.1419 >> diag(A,1) ans = 0.6324 0.9649 0.8003

2. 构造对角矩阵(得到一个二维矩阵) diag(V):以向量V为主对角线元素,产生对角矩阵。 diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。

>> V=[1:5]; >> A=diag(V) A = 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5 >> B=diag(1:4,1) B = 0 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0

例1:建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。

>> A=rand(5) A = 0.8147 0.0975 0.1576 0.1419 0.6557 0.9058 0.2785 0.9706 0.4218 0.0357 0.1270 0.5469 0.9572 0.9157 0.8491 0.9134 0.9575 0.4854 0.7922 0.9340 0.6324 0.9649 0.8003 0.9595 0.6787 >> B=diag(1:5) B = 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5 >> C=B*A //这里使用B乘A C = //左乘行变换,右乘列变换 0.8147 0.0975 0.1576 0.1419 0.6557 1.8116 0.5570 1.9412 0.8435 0.0714 0.3810 1.6406 2.8715 2.7472 2.5474 3.6535 3.8300 1.9415 3.1688 3.7360 3.1618 4.8244 4.0014 4.7975 3.3937

如果是想让矩阵A的第一列乘1,第二列乘2,第n列乘n,可以用右乘(相对A而言),即A*B。

三角阵

上三角阵:triu函数 (triangle+up) 下三角阵:tril函数 triu(A):提取矩阵A的主对角线及以上的元素。 triu(A,k):提取矩阵A的第k条对角线及以上的元素。 tril函数同理。

>> triu(ones(4)) ans = 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 >> C=randn(4) C = 1.0347 -0.7873 -0.8095 -0.7549 0.7269 0.8884 -2.9443 1.3703 -0.3034 -1.1471 1.4384 -1.7115 0.2939 -1.0689 0.3252 -0.1022 >> tril(C,-1) ans = 0 0 0 0 0.7269 0 0 0 -0.3034 -1.1471 0 0 0.2939 -1.0689 0.3252 0 矩阵的转置

转置运算符是小数点后面接单引号(.’)。 共轭转置,其运算符是单引号(’),它在转置的基础上还要取每个数的复共轭。(复数矩阵才用)

>> A=[1:3;4:6;7:9] A = 1 2 3 4 5 6 7 8 9 >> A.' ans = 1 4 7 2 5 8 3 6 9 矩阵的旋转

rot90函数 rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可省略。

>> A A = 1 2 3 4 5 6 7 8 9 >> rot90(A) ans = 3 6 9 2 5 8 1 4 7 矩阵的翻转

flipIr(A):对矩阵A实施左右翻转。 flipud(A):对矩阵A实施上下翻转。

左右翻转是指第一列和最后一列交换,第二列和倒数第二列交换…依次类推。

>> A A = 1 2 3 4 5 6 7 8 9 >> fliplr(A) ans = 3 2 1 6 5 4 9 8 7 >> flipud(A) ans = 7 8 9 4 5 6 1 2 3

例2:验证魔方阵的主对角线、副对角线元素之和相等。

>> A=magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> sum(diag(A)) ans = 65 >> B=fliplr(A) B = 15 8 1 24 17 16 14 7 5 23 22 20 13 6 4 3 21 19 12 10 9 2 25 18 11 >> sum(diag(B)) ans = 65 矩阵的求逆

切记:求逆是针对方阵而言的

对于一个方阵A,如果存在一个与其同阶的方阵B,使得AB=BA=为单位矩阵,则称B为A的逆矩阵,当然, A也是B的逆矩阵。

inv函数

>> A A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> B=inv(A) B = -0.0049 0.0512 -0.0354 0.0012 0.0034 0.0431 -0.0373 -0.0046 0.0127 0.0015 -0.0303 0.0031 0.0031 0.0031 0.0364 0.0047 -0.0065 0.0108 0.0435 -0.0370 0.0028 0.0050 0.0415 -0.0450 0.0111 >> A*B ans = 1.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 1.0000 0 0 0.0000 0.0000 -0.0000 1.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 1.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 方阵的行列式

det(A):求方阵A所对应的行列式的值。

矩阵的秩

rank(A):求矩阵A的秩。

>> A=[3,2,1;3,1,5;3,2,3] A = 3 2 1 3 1 5 3 2 3 >> det(A) ans = -6 >> rank(A) ans = 3


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3