MATLAB学习第七天(矩阵)

简介: MATLAB学习第七天(矩阵)

目录

MATLAB矩阵

MATLAB引用一个矩阵的元素

MATLAB删除行或列矩阵

详细例子

MATLAB矩阵的加法和减法

详细例子

MATLAB除法(左,右)矩阵

详细例子

MATLAB矩阵标量操作

详细例子

MATLAB矩阵的转置

详细例子

MATLAB串联矩阵

详细例子

MATLAB矩阵乘法

详细例子

MATLAB矩阵的行列式

详细例子

MATLAB逆矩阵

详细例子


MATLAB矩阵


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

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


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

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]


MATLAB 将执行上述语句,并返回以下结果:

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


MATLAB引用一个矩阵的元素


如果要引用 mth 行和 nth 列的一个元素,写法如下:

mx(m, n);


例如,参阅第2行和第5列中的元素的矩阵,所创建的最后一节中,我们输入:

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(2,5)


MATLAB将执行上述语句,并返回结果:

ans =
     6


引用m列中的所有元素,我们A型(m)。

接下来我们要从矩阵 a 的第4列的元素开始建立一个列向量 v :

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
v = a(:,4)


MATLAB将执行上述语句,并返回结果:

v =
     4
     5
     6
     7


当然也可以选择第 n 列的 m 个元素,对于这一点,写法如下:

a(:,m:n)


我们建立一个较小的矩阵中的元素,第二和第三列:

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)


MATLAB将执行上述语句,并返回以下结果:

ans =
     2     3
     3     4
     4     5
     5     6


用相同的方式,则可以建立一个子矩阵的一个子部分的矩阵。

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)


MATLAB将执行上述语句,并返回结果:

ans =
     2     3
     3     4
     4     5
     5     6


用相同的方式,则可以创建一个子矩阵的一个子部分的矩阵。

例如,让我们创建一个子矩阵内部子部分的:

3     4     5     
4     5     6     


下述写法可以达到该目的:

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
sa = a(2:3,2:4)


MATLAB将执行上述语句,并返回结果:

sa =
     3     4     5
     4     5     6


MATLAB删除行或列矩阵


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

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


在下述例子中我们删除第四行:

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a( 4 , : ) = []


MATLAB将执行上述语句,并返回结果:

a =
     1     2     3     4     5
     2     3     4     5     6
     3     4     5     6     7


接下来,我们删除第五列:

a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(: , 5)=[]


MATLAB将执行上述语句,并返回结果:

a =
     1     2     3     4
     2     3     4     5
     3     4     5     6
     4     5     6     7


详细例子


在本例中,我们会建立一个3-3的矩阵 m,并把矩阵 m 中的第二行和第三行复制两次,这样就能够建立一个4×3的矩阵。

在MATLAB中建立一个脚本文件,代码如下:

a = [ 1 2 3 ; 4 5 6; 7 8 9];
new_mat = a([2,3,2,3],:)


运行该文件,显示结果:

new_mat =
     4     5     6
     7     8     9
     4     5     6
     7     8     9


MATLAB矩阵的加法和减法

MATLAB矩阵可以有加法和减法的操作,但是两个操作数的矩阵必须具有相同的行数和列数。


详细例子


在MATLAB中建立一个脚本文件,代码如下:

a = [ 1 2 3 ; 4 5 6; 7 8 9];
b = [ 7 5 6 ; 2 0 8; 5 7 1];
c = a + b
d = a - b


运行该文件,显示结果:

c =
     8     7     9
     6     5    14
    12    15    10
d =
    -6    -3    -3
     2     5    -2
     2     1     8


MATLAB除法(左,右)矩阵


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


注意:这两个操作数的矩阵必须具有相同的行数和列数。


详细例子


在MATLAB中建立一个脚本文件,代码如下:

a = [ 1 2 3 ; 4 5 6; 7 8 9];
b = [ 7 5 6 ; 2 0 8; 5 7 1];
c = a / b
d = a \ b


运行该文件,显示结果:

c =
  -0.52542   0.68644   0.66102
  -0.42373   0.94068   1.01695
  -0.32203   1.19492   1.37288
d =
  -3.27778  -1.05556  -4.86111
  -0.11111   0.11111  -0.27778
   3.05556   1.27778   4.30556


MATLAB矩阵标量操作


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

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


详细例子


在MATLAB中建立一个脚本文件,代码如下:

a = [ 10 12 23 ; 14 8 6; 27 8 9];
b = 2;
c = a + b
d = a - b


e = a * b
f = a / b


运行该文件,显示结果:

c =
    12    14    25
    16    10     8
    29    10    11
d =
     8    10    21
    12     6     4
    25     6     7
e =
    20    24    46
    28    16    12
    54    16    18
f =
    5.0000    6.0000   11.5000
    7.0000    4.0000    3.0000
   13.5000    4.0000    4.5000


MATLAB矩阵的转置


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

详细例子


在MATLAB中建立一个脚本文件,代码如下:

a = [ 10 12 23 ; 14 8 6; 27 8 9]
b = a'


运行该文件,显示以下结果:

a =
    10    12    23
    14     8     6
    27     8     9
b =
    10    14    27
    12     8     8
    23     6     9


MATLAB串联矩阵


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

MATLAB串联矩阵的两种类型:

  • 水平串联:要进行连接的两个矩阵是使用逗号 “,” 分隔开的。
  • 垂直串联:要进行连接的两个矩阵是使用分号 “;” 分隔开的。


详细例子


在MATLAB中建立一个脚本文件,代码如下:

a = [ 10 12 23 ; 14 8 6; 27 8 9]
b = [ 12 31 45 ; 8 0 -9; 45 2 11]
c = [a, b]
d = [a; b]


运行该文件,显示结果:

a =
    10    12    23
    14     8     6
    27     8     9
b =
    12    31    45
     8     0    -9
    45     2    11
c =
    10    12    23    12    31    45
    14     8     6     8     0    -9
    27     8     9    45     2    11
d =
    10    12    23
    14     8     6
    27     8     9
    12    31    45
     8     0    -9
    45     2    11


MATLAB矩阵乘法


MATLAB中如果有两个矩阵 A 和 B ,其中 A 是 m*n 矩阵,B 是 n*p 矩阵,那么他们相乘能够产生一个 m*p 的矩阵 C。


MATLAB矩阵乘法只发生在矩阵 A 的列数的数量等于矩阵 B 的行数的矩阵乘法中,具有相应的列中的第二矩阵乘以第一矩阵中的行的元素。


比如,第(i,j)个位置中的每个元素,在所得的矩阵 C 中,是在第 i 行的第一矩阵具有第二矩阵的第 j 列中的相应元素的产品的元素的总和。


在 MATLAB 中,矩阵乘法使用*运算符。


详细例子


在MATLAB中建立一个脚本文件,代码如下:

a = [ 1 2 3; 2 3 4; 1 2 5]
b = [ 2 1 3 ; 5 0 -2; 2 3 -1]
prod = a * b


运行该文件,显示以下结果:

a = 1     2     3    
    2     3     4
    1     2     5
b = 2     1     3
    5     0    -2
    2     3    -1
prod = 18    10    -4
       27    14    -4
       22    16    -6


MATLAB矩阵的行列式

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


详细例子

在MATLAB中建立一个脚本文件,代码如下:

a = [ 1 2 3; 2 3 4; 1 2 5]
det(a)


运行该文件,显示以下结果:

a =
     1     2     3
     2     3     4
     1     2     5
ans =
    -2


MATLAB逆矩阵


MATLAB中矩阵A的逆矩阵被记为 A−1 ,下面的关系成立:

AA−1 = A−1A = 1


MATLAB中不是每个矩阵都有逆矩阵的,比如一个矩阵的行列式是零的话,则矩阵的逆就不存在,这样的矩阵是奇异的。

MATLAB中,逆矩阵的计算使用 inv 函数:逆矩阵A是inv(A).


详细例子


在MATLAB中建立一个脚本文件,并输入下面的代码:

a = [ 1 2 3; 2 3 4; 1 2 5]
inv(a)


运行该文件,显示以下结果:

a =
     1     2     3
     2     3     4
     1     2     5
ans =
   -3.5000    2.0000    0.5000
    3.0000   -1.0000   -1.0000
   -0.5000         0    0.5000



目录
相关文章
|
5月前
OFDM深入学习及MATLAB仿真(二)
OFDM深入学习及MATLAB仿真
230 1
|
5月前
|
编解码 网络协议 前端开发
OFDM深入学习及MATLAB仿真(一)
OFDM深入学习及MATLAB仿真
628 1
|
5月前
|
索引
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
160 0
matlab--------矩阵重构,重新排列的相关函数说明
|
5月前
|
索引
matlab日常学习-------矩阵
matlab日常学习-------矩阵
68 0
|
13天前
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
27 1
|
5月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
matlab学习(二)
matlab学习(二)
|
4月前
|
机器学习/深度学习 存储 移动开发
MATLAB数据类型和运算符+矩阵创建
MATLAB数据类型和运算符+矩阵创建
50 1
|
5月前
|
算法 数据安全/隐私保护
matlab学习(三)
matlab学习(三)
|
5月前
|
计算机视觉
matlab学习(一)(3.26-4.1)
matlab学习(一)(3.26-4.1)
|
5月前
|
Serverless 索引
matlab--------矩阵的运算
matlab--------矩阵的运算
50 1
matlab--------矩阵的运算

热门文章

最新文章