MATLAB 矩阵

1.矩阵的创建

直接创建
创建特殊矩阵

函数功能函数功能
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
2.矩阵的运算
1)矩阵的基本运算
操作符号说明操作符号说明
+矩阵加法/矩阵左除
-矩阵减法.矩阵的点乘运算
*矩阵乘法logm矩阵的对数运算
^矩阵的幂expm矩阵的指数运算
\矩阵右除sqrtm矩阵的开方运算
2)矩阵的形变运算

变形函数

函数名说明函数名说明
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

3)矩阵的特殊计算

1.行列式的转置: 运算符“ ’ ”
2.方阵的行列式:det(A)函数
3.矩阵的逆和伪逆:inv(A)函数和pinv(A)函数
4.求矩阵和向量的范数:norm函数
5.矩阵的秩:rank函数
6.矩阵的迹:即矩阵对角线元素的和以及特征值的和,函数trace(A)

4)利用空矩阵删除矩阵元素

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
3.矩阵的分解

矩阵的分解运算是指将给定的矩阵分解成特殊矩阵乘积的过程。

1)cholesky分解

R = chol(A):返回cholesky分解(柯利分解)因子R
R = chol(A,‘lower’):把矩阵A分解为一个下三角矩阵

2)正交分解

矩阵的正交分解即将矩阵A分解成一个正交矩阵与一个上三角矩阵的乘积。
[Q,R] = qr(A):返回正交矩阵Q和上三角矩阵R,满足A = QR。

3)LU分解

又称矩阵的三角分解,是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A= LU。
[L,U] = lu(A):L为单位下三角矩阵或其变换形式,U为上三角矩阵
[L,U,P] = lu(A):L为单位下三角矩阵,U为上三角矩阵,P为置换矩阵,满足LU = PA。

4)特征值分解

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
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值