美文网首页
MATLAB的矩阵运算与重构

MATLAB的矩阵运算与重构

作者: 校苑数模 | 来源:发表于2019-01-02 15:46 被阅读0次

数组运算与矩阵运算

在MATLAB中,术语矩阵和数组在一般情况下是没有区别的。严格地说,一个矩阵就是一个二维的数组,是用来进行线性代数运算的。MATLAB运用于矩阵上的数学运算符是以线性代数中的矩阵运算法则来进行计算的,而数组运算是基于两个矩阵对应元素之间的,所以在MATLAB中,数组运算和矩阵运算是有区别的。

为了更清晰地表述数组运算和矩阵运算的区别,本节将二者相对应的命令列表进行对比,以说明其异同。表2-8列出了两种运算指令形式和实质功能的区别。

表2-8 数组运算与矩阵运算的区别

【例2-11】 数组运算和矩阵运算的比较。

>> A=[1 2;3 4]; % 测试矩阵A

>> B=[4 3;2 1]; % 测试矩阵B

>> r1=100+A % 矩阵A加上一个常数

r1 =

101 102

103 104

>> r2_1=A*B % 两个矩阵相乘,矩阵乘法

r2_1 =

8 5

20 13

>> r2_2=A.*B % 两个矩阵相乘,数组乘法

r2_2 =

4 6

6 4

>> r3_1=A\B % 矩阵左除

r3_1 =

-6.0000 -5.0000

5.0000 4.0000

>> r3_2=A.\B % 数组除法

r3_2 =

4.0000 1.5000

0.6667 0.2500

>> r4_1=B/A % 矩阵右除

r4_1 =

-3.5000 2.5000

-2.5000 1.5000

>> r4_2=B./A % 数组除法

r4_2 =

4.0000 1.5000

0.6667 0.2500

>> r5_1=A.^2 % 数组幂

r5_1 =

1 4

9 16

>> r5_2=A^2 % 矩阵幂

r5_2 =

7 10

15 22

>> r6_1=2.^A % 数组幂

r6_1 =

2 4

8 16

6 矩阵的重构

6.1 矩阵元素的扩展与删除

MATLAB提供有对矩阵中的元素进行行或者列的扩展与删除的功能。

1.矩阵元素的扩展

将数据保存在矩阵现有维数以外的元素中时,矩阵的尺寸会自动增加,以便容纳下这个新元素。这个功能可以用来进行矩阵的扩展。

【例2-12】 矩阵的扩展。

>> A=magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

>> A(6,7)=17

A =

16 2 3 13 0 0 0

5 11 10 8 0 0 0

9 7 6 12 0 0 0

4 14 15 1 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 17

>> A(:,8)=ones(6,1)

A =

16 2 3 13 0 0 0 1

5 11 10 8 0 0 0 1

9 7 6 12 0 0 0 1

4 14 15 1 0 0 0 1

0 0 0 0 0 0 0 1

0 0 0 0 0 0 17 1

本例中,A的原始矩阵并没有A(6,7)这个元素,通过赋值给A(6,7),矩阵A扩展成了一个6´7的新矩阵,其中未赋值的扩展部分以0来填充。另外本例还说明了如何对矩阵的多个元素进行扩展赋值,直接将一个列向量赋值给了扩展部分。

2.矩阵元素的删除

通过将行或列指定为空矩阵[],即可从矩阵中删除行和列。

【例2-13】 矩阵的删除。

>> A=magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

>> A(:,1)=[] % 删除矩阵A的第1列

A =

2 3 13

11 10 8

7 6 12

14 15 1

>> A(2,:)=[] % 删除矩阵A的第2行

A =

2 3 13

7 6 12

14 15 1

6.2 矩阵的重构

用户可以通过矩阵旋转,改变维数和截取部分元素来产生所需要的新矩阵。MATLAB提供了一些矩阵重构函数,如表2-9所示。

表2-9 常用的矩阵重构函数及说明

【例2-14】 矩阵的重构示例。

>> a=reshape(1:9,3,3) % 创建测试矩阵

>> a= [1,7;2,8;3,9;4,10;5,11;6,12] % 创建测试矩阵

a =

1 7

2 8

3 9

4 10

5 11

6 12

>> a = reshape(a,4,3) % 使用reshape改变a的形状,

% 注意前后两个a每一个单下标对应的元素是一致的

a =

1 5 9

2 6 10

3 7 11

4 8 12

>> b=rot90(a,3) % 将矩阵a逆时针旋转3×90°

b =

4 3 2 1

8 7 6 5

12 11 10 9>> c=fliplr(a) % 将矩阵a左右翻转

c =

9 5 1

10 6 2

11 7 3

12 8 4>> d=flipud(a) % 将矩阵a上下翻转

d =

4 8 12

3 7 11

2 6 10

1 5 9【例2-15】 矩阵部分元素的提取。

>> a=[1 2 3;4 5 6; 7 8 9] % 创建测试矩阵

a =

1 2 3

4 5 6

7 8 9

>> b=diag(a) % 求a的对角矩阵

b =

1

5

9

>> c=triu(a,1) % c矩阵第1条对角线及以上的元素取矩阵a的元素,其余为0

c =

0 2 3

0 0 6

0 0 0

>> d=triu(a,2) % d矩阵第2条对角线及以上的元素取矩阵a的元素,其余为0

d =

0 0 3

0 0 0

0 0 0

>> e=triu(a,-1) % e矩阵中除了第3行第1列元素为0,其余元素都取自矩阵a的元素

e =

1 2 3

4 5 6

0 8 9

>> f=tril(a,-1) % 下三角矩阵的提取

f =

0 0 0

4 0 0

7 8 0

相关文章

  • MATLAB的矩阵运算与重构

    数组运算与矩阵运算 在MATLAB中,术语矩阵和数组在一般情况下是没有区别的。严格地说,一个矩阵就是一个二维的数组...

  • matlab基础语法

    matlab中主要是矩阵运算 矩阵赋值 矩阵运算 控制流程 绘图

  • Numpy学习笔记

    点积与乘法运算符 Numpy的乘法运算符*是按元素逐个运算的,与matlab不同。假设矩阵a(m,n) b(n,k...

  • matlab小知识

    matlab &与&&的区别 &适用于矩阵间的逻辑运算,&&不适用,只适用于单个元素,包括数值和字符。

  • Numpy中的矩阵运算+聚合操作+arg运算(2019.1.17

    Numpy中的矩阵运算 1.矩阵与数值之间的运算,矩阵与数值之间的算术运算,是矩阵里面的元素与数值进行运算 2.矩...

  • NumPy基础之矩阵的运算

    矩阵运算 矩阵运算包括矩阵的加法、减法、乘法(相乘与点乘)、矩阵的转置等,接下来详细讲解矩阵运算。 矩阵的加减法,...

  • 3.6 矩阵运算

    3.6.1 矩阵运算规则 矩阵的加减法运算规则与数组相同,即元素运算,其结果返回新的矩阵。倍乘数运算也是矩阵内元素...

  • 第三节矩阵运算

    1矩阵运算 2矩阵运算 3向量和矩阵的运算 4矩阵的逆 逆矩阵与原矩阵相乘得到单位矩阵,对角线全为1,其他元素为0...

  • MATLAB(一)矩阵相关运算

    基础资料参考:https://blog.csdn.net/ncepu_Chen/article/details/1...

  • 「转载」MATLAB tutorial

    MATLAB命令大全和矩阵操作大全一、矩阵的表示在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”...

网友评论

      本文标题:MATLAB的矩阵运算与重构

      本文链接:https://www.haomeiwen.com/subject/rkbzlqtx.html