第5章 数据运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B = sort(A, dim):A是多维数组,函数沿着第dim维进行 排序。
B = sort(..., mode) : mode 为 排 序 方 式 , 当 mode 为 ‘ascend’时升序,为‘descend’时降序,sort函数默 认排序方式是升序。
2、相关系数
与标准方差不同,相关系数是衡量两个随机变量之
间线性相关程度的指标。对于数据序列 、数据序列 ,
序列 、 的相关系数的计算公式如下:
r xy x y
(5-3)
其中: xy 2 xy
(x x)( y y) n
(5-4)
x
2
(x x)
【例5-17】求矩阵A的累乘积。
MATLAB代码如下: % 输入矩阵A A = [1 2 3;4 5 6;7 8 9] % 求矩阵A的沿第1伟的累加和 C = cumsum(A) % 求矩阵A的沿第2维的累加和 C1 = cumsum(A, 2)
5.1.5 标准方差与相关系数
1、标准方差
标准方差反映的是数据相对均值的散布程度,
2.求数据序列的最小值 利用min函数计算序列的最小值,调用格式与max函
数完全相同,不再赘述。
【例5-1】 求向量序列的最大值。
MATLAB代码如下: % A、B两个向量 A = [2 3 7 16 0 1 8 12 -3 4]; B = [1 0 8 3 31 -1 16 2 9 10]; % 求向量A中的最大值 a = max(A) % 求A、B中位置相同处的元素最大值 b= max(A,B)
元素的类型可以是整型、浮点型等数值类型,也可 以是字符、字符串类型。sort函数的调用格式如下:
B = sort(A):沿着数组的不同维度对元素进行排序。如果 A是向量,则对向量元素进行排序;如果A是矩阵,则对矩 阵的每列元素进行排序;如果A 是多维数组,则函数沿着 第一个长度非1的维进行排序,并返回一个向量数组。如果 A是字符串数组,则函数按字符的ASCII码值进行排序。
5.1.2 求和与求积
1. 求和 在MATLAB中提供sum函数用于求数据序列的和,其调用格式如
下: B=sum(A):序列A是向量,则B为各元素的和;序列A是矩阵, B为一个行向量,其中第i个元素是矩阵A中第i列元素求和。 B = sum(A, dim):序列A按指定维计算元素之和。 B = sum(A, 'double')或B = sum(A, dim, 'double'):返回双 精度类型的和值,A既可以是整数,也可以是单精度类型。 B = sum(A, 'native')或B = sum(A, dim, 'native'):返回自然 类型的和值,它们都是单精度数和双精度数运算时的默认情 况。
S = std(X, flag, dim):序列A按指定维计算元素的标准 方差,dim的值为1或2。
【例5-18】求向量X的标准方差。
MATLAB代码如下: % 输入向量X X = [2 8 14 0 -7 9 1 21] % 按公式(5-1)求向量X的标准方差 S = std(X) % 按公式(5-2)求向量X的标准方差 S1 = std(X, 1)
A = [1 2 3; 4 5 6; 7 8 9]
% 求和 B = sum(A)
MATLAB的运行结果如下:
% 对第2维求和
A=
C = sum(A, 2)
123
456
789
B=
12 15 18
C=
6
15
24
【例5-7】 对向量A求和。MATLAB代码如下:
% A为矩阵 A = [1 2 3; 4 5 6; 7 8 9] % 设置不同的精度 B = sum(A,2,'double') C = sum(A,2,'native')
2、累乘积 数字信号处理中经常需要设计乘法器,因此需要掌握
MATLAB中该函数的使用方法。在MATLAB中,因此用 cumprod函数用于求数据序列的累乘积,其调用格式如下。 B = cumprod(A):如果序列A是向量,则B为向量A中各元
素的累乘积;如果序列A是矩阵,则B为一个行向量,其中 向量B的第i个元素是矩阵A中第i列各元素的乘积; B = cumprod(A, dim):序列A按指定维计算元素的乘积, 如果 A为矩阵,且dim=2,则表示对矩阵A的每一行进行求 乘积,从而返回一个列向量,其中第i个元素是矩阵A中第i行 的各元素的乘积。
对于数据序列 而言, ,其标准方差的计算方式如公
式如下所示。
1
s
Biblioteka 1 n -1n i 1
( xi

x)2
2
其中 x (1n5-i1n1)xi
修改之后为:
1是序列的均值
s

1 n
n i 1
(xi

x)2
2
(5-2)
在 MATLAB 中 用 std 函 数 用 于 求 数 据 序 列 的 标 准 方 差 , 其调用格式如下:
MATLAB的运行结果如下: a=
16 b=
2 3 8 16 31 1 16 12
9 10
【例5-2】 求矩阵序列的最大值。MATLAB代码如下:
% D是矩阵 D = [1 4 13 9; 2 39 11 6; -1 2 8 17; 21 5 11 0] % 求D中的最大值 A= max(D,[ ],2) % 求D中沿着第2维的最大值 B= max(D,[ ],2) % 求矩阵的最大值 [C, I] = max(D)
【例5-5】 对向量A求和。MATLAB代码如下: % A为向量 A = [1 9 32 -7 0 4 -3 14 8 -6] % 求和 B = sum(A) MATLAB的运行结果如下:
A=
1 9 32 -7 0 4 -3 14
B=
52
8 -6
【例5-6】 对向量A求和。MATLAB代码如下: % A为矩阵
MATLAB的运行结果如下:
A= 123 456 789
B=
6.0
15.0
24.0
C=
6
15
24
2 . 求积 在MATLAB中提供prod函数用于求数据序列的积,其调
用格式如下: B=prod(A):序列A是向量,则B为各元素的乘积;序列 A是矩阵,B为一个行向量,其中第i个元素是矩阵A中第 i列元素的乘积。 B = prod(A, dim):序列A按指定维计算元素之积。
5.1.3 平均值和中值
1、平均值 在图像处理和数字信号处理中,序列的均值求解非常常见,
可以用来衡量序列的稳定性,也可以用来抑制序列中的噪声。 在MATLAB中,mean函数用于求数据序列的平均值,其调用 格式如下: M = mean(A):序列A为向量,则B为序列A中各素的算术
平均值;序列A为矩阵,则B为一个行向量,其中向量B中 的第i个元素是矩阵A中第i列各元素的算术平均值。 M = mean(A, dim):序列A按指定维计算元素的算术平均 值,如果 A为矩阵,且dim=2,则表示对矩阵A的每一行 进行求平均,从而返回一个列向量,其中第i个元素是矩阵 A中第i行的各元素平均。
加和;序列A是矩阵,则B为一个行向量,其中向量B的第i个 元素是矩阵A中第i列各元素的累加和。 B = cumsum(A, dim):序列A按指定维计算元素的累加和,如 果 A为矩阵,且dim=2,则表示对矩阵A的每一行进行求累加 和,从而返回一个列向量,其中第i个元素是矩阵A中第i行的 各元素的累加和。
Matlab提供的求数据序列的最大值和最小值的函数 分别为max和min,两个函数的调用格式和操作过程类 似。
1.求数据序列的最大值 利用max函数计算序列的最大值,调用格式有四种
如下: (1) C=max(A):A是向量,则C代表向量A中的最大值;
A为矩阵,则C是一个行向量,向量的第i个元素是矩阵 A的第i列所对应的最大值;如果A中的元素有复数,则 按模值取最大值。
n
(5-5) y
2
(y y)
(5-6)
n
【例5-20】求向量Y1和Y2的相关系数。
MATLAB代码如下: %Y1和Y2为两个向量 Y1 = [1 5 8 12 6 2] Y2 = [2 6 3 7 9 11] % 求Y1和Y2的相关系数 R = corrcoef(Y1, Y2)
【例5-21】 求矩阵X的相关系数。
2、中值 在 MATLAB 中 , 序 列 的 中 值 很 容 易 计 算 ,
MATLAB提供median函数用于求数据序列的中值, 其调用格式如下:
M = median(A):序列A是向量,则B为序列A中各 元素的中值;序列A是矩阵,则B为一个行向量,其中 向量B中的第i个元素是矩阵A中第i列各元素的中值。
M= median(A, dim):A按指定维计算元素的中值,
下面举例说明两种函数的使用。
【例5-13】求矩阵A的算术平均值。
MATLAB代码如下: % 输入向量A A = [1 2 3; 4 2 4; 6 7 8] % 求矩阵A沿第1维的中值 k1 = median(A) % 求矩阵A沿第2维的中值 k2 = median(A, 2) % 求矩阵A的中值 k3 = median(median(A))
S = std(X):序列A是向量,则B为向量A的标准方差;序 列A是矩阵,则B为一个行向量,其中其中向量B第i个元 素是矩阵A中第i列元素的标准方差。注意:用公式(5-1) 计算标准方差。
S = std(X, flag):flag的值为0或1,如果flag为0,则用 公式(5-1)求标准方差;如果flag = 1,则用公式(5-2) 求标准方差。
下面举例说明两种函数的使用。
【例5-8】 求矩阵A的积。
MATLAB代码如下: %输入矩阵A A = [1 2 3 4 5 6 7 8 9] %求数据序列的积
B = prod(A) MATLAB的运行结果如下:
A= 123456789
B= 362880
【例5-9】求矩阵A的积。
MATLAB代码如下: % A为矩阵 A = [1 2 3; 4 5 6; 7 8 9] % 求积 B = prod(A) % 对第2维求积 C = prod(A, 2)
%创建一个随机的矩阵 X = rand(10,5) % 求X的相关系数 [R, P] = corrcoef(X)
5.1.6 排序
在MATLAB中提供了sort和sortrows两种函数用于对数 据作排序的操作处理,在这里主要介绍数值数据的排序,对 字符串数据排序问题只作简单的讲述。
1、sort函数 sort函数对数组元素进行升序或降序排列,数组
5.1.4 累加和与累乘积
1、累加和
概率论中经常需要计算序列的累积概率密度分布函数,在图 像处理中也经常计算图像的直方图的累积概率密度分布函数,因 此需要掌握MATLAB中该函数的使用方法。在MATLAB中,因 此用cumsum函数用于求数据序列的累加和,其调用格式如下: B = cumsum(A):序列A是向量,则B为向量A中各元素的累
第5章 MATLAB数据分析 与应用
5.1 数据统计处理 5.2 数据插值 5.3 离散傅里叶变换 5.4 多项式计算 5.5 线性方程组求解 5.6 曲线拟合 5.7 常微分方程初值问题 5.8 最优化问题求解 5.9 数值积分 5.10 数值微分 5.11 本章小结
5.1 数据统计处理 5.2 数据插值 5.3 离散傅里叶变换 5.4 多项式计算 5.5 线性方程组求解 5.6 曲线拟合 5.7 常微分方程初值问题 5.8 最优化问题求解 5.9 数值积分 5.10 数值微分 5.11 本章小结
5.1.1 最大值和最小值
(2) C=max(A,B):返回的是序列A、B中位置相同处的元素最大 值,C可能是一个标量,也可能是一个向量。注意,在运用此函 数时,须保证序列A、B维数的大小是相同的。 (3) C=max (A, [ ], dim):求序列A中沿着指定维dim的最大值。 (4) [C, I] = max(…):不仅得到最大值C,而且还得到最大值的 位置I。如果有多个相同的最大值,那么返回第一个最大值的位 置。
相关文档
最新文档