您的当前位置:首页正文

MATLAB矩阵及其运算

2024-11-10 来源:个人技术集锦

在MATLAB中创建矩阵有以下规则:

  • 矩阵元素必须在 “[ ]” 内;
  • 矩阵的同行元素之间用空格(或 “,”)隔开;
  • 矩阵的行与行之间用 “;”(或回车符)隔开;
  • 矩阵的元素可以是数值、变量、表达式或函数;
  • 矩阵的尺寸不必预先定义。

下面的例子中我们创建了一个3×4的矩阵:

c=[1:4;2:5;3:6]

引用矩阵的某一元素

若要引用第m行第n列的元素,则输入c(m,n)。

比如引用三行四列的元素:

c(3,4)

ans =

     6

引用矩阵的部分元素

我们可以引用一个矩阵中的子矩阵,对于矩阵a而言,可以选取第m行到第n行在第p列到第q列的子矩阵。只需输入a(m:n,p:q)。

下面是一个例子,

a =

     1     2     3     4     5
     2     3     4     5     6
     3     4     5     6     7
     4     5     6     7     8

>> f=a(1:2,3:5)

f =

     3     4     5
     4     5     6

事实上,还可以有更一般引用的形式,为更好地理解,引用第一行和第三行,以及第二列和第五列的矩阵如下:

f=a(1:2:3,2:3:5)


f =

     2     5
     4     7

 删除行或列矩阵

可以删除整行或整列的矩阵,只要分配一组空方括号 [ ] 给该行或列。

基本上,[ ] 表示一个空数组。

有了上面的引用元素的例子和介绍,这个问题就很好解决了。

下面我们删除a的第二行和第三行:

a([2,3],:)=[]

a =

     1     2     3     4     5
     4     5     6     7     8

值得注意的是,删除的命令本身就是在赋值,所以不能再将它赋给另一个变量。

矩阵的加减法

这里不再举例说明,矩阵加减法只要保证维度一致即可。

矩阵除法

MATLAB 中有两种矩阵除法符号:即左除“\” 和右除 “/”

运算符名称说明
/(向右倒称为右除)右除  AB=C    A=C/B
\(向左倒称为左除)左除 AB=C    B=A\C

 B\A 就是对应线性方程B*X=A 的解。

矩阵标量操作

MATLAB矩阵的标量操作就是加,减,乘或者除以一个数字矩阵。

添加到具有原始矩阵的每个元素的行和列,相减,乘或除以数相同数量的标量运算会产生一个新的矩阵。

 举一个例子:

 a=[12 43 4;3 6 9;7 36 15];
b=3;
c=a+b
d=a-b
e=b*a
f=a/b

c =

    15    46     7
     6     9    12
    10    39    18


d =

     9    40     1
     0     3     6
     4    33    12


e =

    36   129    12
     9    18    27
    21   108    45


f =

    4.0000   14.3333    1.3333
    1.0000    2.0000    3.0000
    2.3333   12.0000    5.0000

矩阵的转置

MATLAB中矩阵的转置操作是用一个单引号(')表示的,该操作能够切换一个矩阵的行和列。

 串联矩阵

MATLAB中使用一对中括号“[ ]”,能够将两个矩阵连接起来,创建出一个新矩阵。

a = [ 10 15 53 ; 73 8 6; 17 8 9];
b = [ 12 31 55 ; 7 0 -9; 65 4 61];
c=[a,b]
d=[a;b]


c =

    10    15    53    12    31    55
    73     8     6     7     0    -9
    17     8     9    65     4    61


d =

    10    15    53
    73     8     6
    17     8     9
    12    31    55
     7     0    -9
    65     4    61

 矩阵乘法

乘法需要保证前一个矩阵的列指标和后一个矩阵的行指标相同。

a = [ 10 15 53 ; 73 8 6; 17 8 9];
b = [ 12 31 55 ; 7 0 -9; 65 4 61];

a*b

ans =

        3670         522        3648
        1322        2287        4309
         845         563        1412

 矩阵的行列式

MATLAB要计算对应矩阵行列式的值的指令为:d=det(A),该指令返回矩阵 A 的行列式,并把所得值赋给 d。若 A 仅包含整数项,则该结果 d 也是一个整数。

 a = [ 7 1 3 ; 7 4 6; 1 8 9];
det(a)

ans =

   15.0000

逆矩阵 

逆矩阵的计算使用 inv 函数:逆矩阵A是inv(A)。

a = [ 7 1 3 ; 7 4 6; 1 8 9];
format rat
inv(a)

ans =

      -4/5            1             -2/5     
     -19/5            4             -7/5     
      52/15         -11/3            7/5     

Top