matlab入门基础:矩阵操作(一)

系列笔记目录

第二节:矩阵操作(一):创建特殊矩阵、矩阵的运算


文章目录

  • 系列笔记目录
  • 前言
  • 一、创建特殊矩阵
  • 二、矩阵运算
    • 1.矩阵元素的修改
    • 2.矩阵的变维
    • 3.矩阵的变向
    • 4. 矩阵的抽取
    • 练习
  • 三、矩阵的数学运算
  • 总结


前言

MATLAB即Matrix Laboratory(矩阵实验室)的缩写,足以证明MATLAB在对矩阵问题进行处理的强大,我们这篇文章主要讲解如何创建特殊矩阵,如何对矩阵进行运算。


一、创建特殊矩阵

函数作用
eye(n)创建n*n单位矩阵
eye(m,n)创建m*n的单位矩阵
eye(size(A))创建与A维数相同的单位矩阵
ones(n)创建n*n的全1矩阵
ones(m,n)创建m*n全1矩阵
ones(size(A))创建与A维数相同的全1矩阵
zeros(m,n)创建m*n全0矩阵
zeros(size(A))创建与A维数相同的全0矩阵
rand(n)在[0,1]区间内创建一个n*n均匀分布的随机矩阵
rand(m,n)在[0,1]区间内创建一个m*n均匀分布的随机矩阵
rand(size(A))在[0,1]区间内创建一个与A维数相同的均匀分布的随机矩阵
compan (K)创建系数向量是K的多项式的伴随矩阵
diag(v)创建以向量v中的元素为对角的对角阵
hilb(n)创建n*n的Hilbert矩阵
magie(n)生成n阶魔方矩阵
sparse(A)将矩阵A转化为稀疏矩阵形式,即由A的非零元素和下标构成稀疏矩阵S。若A本身为稀疏矩阵,则返回A本身。

实例:生成特殊矩阵

>> zeros(3)%创建3阶全0矩阵ans =0              0              0       0              0              0       0              0              0       >> zeros(3,2)%创建32列的全0矩阵ans =0              0       0              0       0              0       >> ones(3,2)%创建32列的全1矩阵ans =1              1       1              1       1              1       >> ones(3)%创建3阶全1矩阵ans =1              1              1       1              1              1       1              1              1       >> rand(3)%创建3*3的随机数矩阵,元素值在区间(01)内均匀分布ans =664/815        717/785        408/1465  1298/1433      1493/2361      1324/2421  751/5914       694/7115       338/353   >> format long,rand(3)%15位表示ans =0.964888535199277   0.957166948242946   0.1418863386272150.157613081677548   0.485375648722841   0.4217612826262750.970592781760616   0.800280468888800   0.915735525189067>> format short,rand(3,2)%5位表示,创建3*2的随机矩阵ans =0.7922    0.03570.9595    0.84910.6557    0.9340>> magic(3)%创建3阶魔方矩阵ans =8     1     63     5     74     9     2>> hilb(3)%创建3阶Hilbert矩阵ans =1.0000    0.5000    0.33330.5000    0.3333    0.25000.3333    0.2500    0.2000>> invhilb(3)%创建3阶Hilbert矩阵的逆矩阵ans =9   -36    30-36   192  -18030  -180   180

二、矩阵运算

1.矩阵元素的修改

命令名说明
D=[A;B C]A为原矩阵,B、C中包含要扩充的元素,D为扩充后的矩阵
A(m,:)=[ ]删除A的第m行
A(:,n)=[ ]删除A的第n列
A(m,n)=a;对A的第m行第n列的元素赋值;
A(m,:)=[a b …];对A的第m行赋值;
A(:,n)=[a b …]对A的第n列赋值

实例:新矩阵的生成、修改矩阵元素

>> A=[1 2 3;4 5 6];
>> B=eye(2);%定义2*2的单位矩阵B
>> C=zeros(2,1);%定义2*1的全0矩阵C
>> D=[A;B C]%扩充矩阵D =1     2     34     5     61     0     00     1     0
>> D(2,:)ans =4     5     6>> D(1,2)=9D =1     9     34     5     61     0     00     1     0

2.矩阵的变维

矩阵的变维可以用符号“:”法和reshape()函数法。
函数调用方式:reshape(X,m,n):将已知矩阵X变维成m行n列的矩阵。

实例:矩阵维度改变

> A=1:12;%定义一个行向量
>> B=reshape(A,2,6)%将行向量A变维26列B =1     3     5     7     9    112     4     6     8    10    12
>> C=zeros(3,4);%用“:”必须先设定修改后矩阵的形状
>> C(:)=A(:)C =1     4     7    102     5     8    113     6     9    12

3.矩阵的变向

命令名说明
rot90(A)将A逆时针方向旋转90°
rot90(A,k)k可为正整数或负整数
fliplr(X)将X左右翻转
flipud(X)将X上下翻转
flipdim(X,dim)dim=1时对行翻转,dim=2时队列翻转

实例:矩阵的变向

>> A=1:12;
>> C=zeros(3,4);%指定修改后矩阵的维度大小
>> C(:)=A(:)%将矩阵A变维为34列C =1     4     7    102     5     8    113     6     9    12>> flipdim(C,1)%上下翻转矩阵C的行ans =3     6     9    122     5     8    111     4     7    10>> flipdim(C,2)%左右翻转矩阵C的列ans =10     7     4     111     8     5     212     9     6     3

4. 矩阵的抽取

对矩阵元素的抽取主要是指对角元素和上(下)三角阵的抽取。

命令名说明
diag(X,k)抽取矩阵X的第k条对角线上的元素向量。k为0时,抽取主对角线线,k为正整数时抽取上方第k条对角线上的元素,k为负整数时抽取下方第k条对角线上的元素
diag(X)抽取主对角线
diag(v,k)使得v为所得矩阵第k条对角线上的元素向量
diag(v)使得v为所得矩阵主对角线上的元素向量
tril(X)提取矩阵X的主下三角部分
tril(X,k)提取矩阵X的第k条对角线下面的部分(包括第k条对角线)
triu(X)提取矩阵X的主上三角部分
triumph(X,k)提取矩阵X的第k条对角线上面的部分(包括第k条对角线)

实例:矩阵的抽取操作

>> A=magic(4)%创建4阶魔方矩阵A =16     2     3    135    11    10     89     7     6    124    14    15     1>> V=diag(A,2)%抽取矩阵A第2条对角线上的元素V =38>> tril(A,-1)%抽取矩阵A主对角线下方的元素ans =0     0     0     05     0     0     09     7     0     04    14    15     0>> triu(A)%提取矩阵A的上三角部分ans =16     2     3    130    11    10     80     0     6    120     0     0     1

练习

:创建一个新的矩阵

>> A=[5 1 1 9;1 3 8 1;1 1 3 1;1 1 1 3]%创建一个旧的矩阵AA =5     1     1     91     3     8     11     1     3     11     1     1     3
>> A(:,1)=[]%删除矩阵多余的列元素A =1     1     93     8     11     3     11     1     3
>> A(2,2)=1A =1     1     93     1     11     3     11     1     3>> A(4,3)=-1A =1     1     93     1     11     3     11     1    -1

三、矩阵的数学运算

这个没什么好讲的,直接加减乘除就行了,唯一一个需要注意的就是:
在MATLAB中,矩阵的幂运算需要加‘.’才可以。

>> A.^2ans =1     1    819     1     11     9     11     1     1

求矩阵的逆用函数 inv(X);要求是矩阵必须是方阵才可以。

总结

用MATLAB对矩阵问题进行求解和应用真的非常强大。还有矩阵更新和范数,我打算单独写一篇小文章,进行讲解。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部