第3章 数组与矩阵——3.1 数组运算(2)

简介: 第3章 数组与矩阵——3.1 数组运算(2)

3.1  数组运算(2)


3.1.2  数组的常见运算


1.数组的算术运算


数组的运算是从数组的单个元素出发,针对每个元素进行的运算。在MATLAB中,一维数组的算术运算包括加、减、乘、左除、右除和乘方。

数组的加减运算:通过格式A+BA-B可实现数组的加减运算。但是运算规则要求数组AB的维数相同。


提示:如果两个数组的维数不相同,则将给出错误的信息。


3-7:数组的加减运算示例。

在命令行窗口中依次输入:

clear all
A = [1 5 6 8 9 6]
B = [9 85 6 2 4 0]
C = [1 1 1 1 1]
D = A + B         % 加法
E = A - B            % 减法
F = A * 2
G = A + 3            % 数组与常数的加法
H = A - C

输出结果:

A =
     1     5     6     8     9     6
B =
     9    85     6     2     4     0
C =
     1     1     1     1     1
D =
    10    90    12    10    13     6
E =
    -8   -80     0     6     5     6
F =
     2    10    12    16    18    12
G =
     4     8     9    11    12     9
矩阵维度必须一致。


数组的乘除运算:通过格式“.*”“./”可实现数组的乘除运算。但是运算规则要求数组AB的维数相同。

乘法:数组AB的维数相同,运算为数组对应元素相乘,计算结果与AB是相同维数的数组。

除法:数组AB的维数相同,运算为数组对应元素相除,计算结果与AB是相同维数的数组。

右除和左除的关系:A./B=B.\A,其中A是被除数,B是除数。


提示:如果两个数组的维数不相同,则将给出错误的信息。


3-8:数组的乘法运算示例。

在命令行窗口中依次输入:

clear all
A = [1 5 6 8 9 6]
B = [9 5 6 2 4 0]
C = A .* B     % 数组的点乘
D = A * 3         % 数组与常数的乘法

输出结果:

A =
     1     5     6     8     9     6
B =
     9     5     6     2     4     0
C =
     9    25    36    16    36     0
D =
     3    15    18    24    27    18


3-9:数组的除法运算示例。

在命令行窗口中依次输入:

clear all
A = [1 5 6 8 9 6]
B = [9 5 6 2 4 0]
C = A .\ B        % 数组与数组的左除
D = A ./ B        % 数组与数组的右除
E = A ./3            % 数组与常数的除法
F = A / 3

输出结果:

A =
     1     5     6     8     9     6
B =
     9     5     6     2     4     0
C =
    9.0000    1.0000    1.0000    0.2500    0.4444         0
D =
    0.1111    1.0000    1.0000    4.0000    2.2500       Inf
E =
    0.3333    1.6667    2.0000    2.6667    3.0000    2.0000
F =
    0.3333    1.6667    2.0000    2.6667    3.0000    2.0000


通过乘方格式“.^”实现数组的乘方运算。数组的乘方运算包括数组间的乘方运算、数组与某个具体数值的乘方运算,以及常数与数组的乘方运算。


3-10:数组的乘方运算示例。

在命令行窗口中依次输入:

clear all
A = [1 5 6 8 9 6]
B = [9 5 6 2 4 0]
C = A .^ B        % 数组的乘方
D = A .^ 3        % 数组与某个具体数值的乘方
E = 3 .^ A        % 常数与数组的乘方

输出结果:

A =
     1     5     6     8     9     6
B =
     9     5     6     2     4     0
C =
           1        3125       46656          64        6561           1
D =
     1   125   216   512   729   216
E =
           3         243         729        6561       19683         729


通过使用函数dot()可实现数组的点积运算,但是运算规则要求数组AB的维数相同,其调用格式如下:

● C=dot(A,B)

● C=dot(A,B,dim)


3-11:数组的点积运算示例。

在命令行窗口中依次输入:

clear all
A = [1 5 6 8 9 6]
B = [9 5 6 2 4 0]
C = dot(A,B)          % 数组的点积
D = sum(A .* B)       % 数组元素的乘积之和

输出结果:

A =
     1     5     6     8     9     6
B =
     9     5     6     2     4     0
C =
   122
D =
   122


2.数组的关系运算


MATLAB中提供了6种数组关系运算符,即<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(恒等于)、~=(不等于)。

关系运算的运算法则如下:

当两个比较量是标量时,直接比较两个数的大小。若关系成立,则返回的结果为1,否则为0

当两个比较量是维数相等的数组时,逐一比较两个数组相同位置的元素,并给出比较结果。最终的关系运算结果是一个与参与比较的数组维数相同的数组,其组成元素为01


3-12:数组的关系运算示例。

在命令行窗口中依次输入:

clear all
A = [1 5 6 8 9 6]
B = [9 5 6 2 4 0]
C = A < 6            % 数组与常数比较,小于
D = A >= 6        % 数组与常数比较,大于或等于
E = A < B         % 数组与数组比较,小于
F = A == B        % 数组与数组比较,恒等于

输出结果:

A =
     1     5     6     8     9     6
B =
     9     5     6     2     4     0
C =
  1×6 logical 数组
   1   1   0   0   0   0
D =
  1×6 logical 数组
   0   0   1   1   1   1
E =
  1×6 logical 数组
   1   0   0   0   0   0
F =
  1×6 logical 数组
   0   1   1   0   0   0


3.数组的逻辑运算


MATLAB中提供了3种数组逻辑运算符,即&(与)、|(或)和~(非)。逻辑运算的运算法则如下:

如果是非零元素则为真,用1表示;如果是零元素则为假,用0表示。

当两个比较量是维数相等的数组时,逐一比较两个数组相同位置的元素,并给出比较结果。最终的逻辑运算结果是一个与参与比较的数组维数相同的数组,其组成元素为01

在进行与运算(a&b)时,ab全为非零,则为真,运算结果为1。在进行或运算(a|b)时,只要ab有一个为非零,则运算结果为1。在进行非运算(~a)时,若a0,则运算结果为1;若a为非零,则运算结果为0


3-13:数组的逻辑运算示例。

在命令行窗口中依次输入:

clear all
A = [1 5 6 8 9 6]
B = [9 5 6 2 4 0]
C = A & B         % 与运算
D = A | B            % 或运算
E = ~B            % 非运算

输出结果:

A =
     1     5     6     8     9     6
B =
     9     5     6     2     4     0
C =
  1×6 logical 数组
   1   1   1   1   1   0
D =
  1×6 logical 数组
   1   1   1   1   1   1
E =
  1×6 logical 数组
   0   0   0   0   0   1

相关文章
|
22天前
|
Python
数组运算
【5月更文挑战第6天】数组运算。
20 1
|
22天前
|
索引
238.除自身以外数组的乘积
238.除自身以外数组的乘积
11 0
|
22天前
|
算法 前端开发
数组归约运算
数组归约运算
15 0
|
22天前
|
算法 前端开发
二的幂数组中查询范围内的乘积
二的幂数组中查询范围内的乘积
19 0
|
9月前
|
存储
第3章 数组与矩阵——3.1 数组运算(1)
第3章 数组与矩阵——3.1 数组运算(1)
|
9月前
第3章 数组与矩阵——3.3 矩阵元素的运算(2)
第3章 数组与矩阵——3.3 矩阵元素的运算(2)
|
9月前
|
存储
第3章 数组与矩阵——3.3 矩阵元素的运算(1)
第3章 数组与矩阵——3.3 矩阵元素的运算(1)
|
9月前
|
机器学习/深度学习 存储 人工智能
第3章 数组与矩阵——3.2 矩阵操作
第3章 数组与矩阵——3.2 矩阵操作
|
9月前
|
存储 NoSQL
第3章 数组与矩阵——3.5 稀疏矩阵
第3章 数组与矩阵——3.5 稀疏矩阵
|
10月前
除自身以外数组的乘积
除自身以外数组的乘积
32 0