
4.4 数据统计
在生产实际和科学研究中经常会对数据进行统计,MATLAB语言提供了很多数据统计方面的函数。
4.4.1 矩阵元素的最大值和最小值
1.求向量的最大元素和最小元素
1)求向量的最大元素
MATLAB求一个向量X的最大元素可以使用函数max(X),其调用格式为

例如,求向量X=[34,23,﹣23,6,76,56,14,35]的最大值。

2)求向量的最小元素
MATLAB求一个向量X的最小元素可以使用函数min(X),其调用格式及用法与max(X)函数一样。
例如,求向量X=[34,10,﹣23,6,76,0,14,35]的最小值。

2.求矩阵的最大元素和最小元素
1)求矩阵的最大元素
MATLAB求一个矩阵A的最大元素可以使用函数max,其调用格式为

其中,dim为1时,该函数和max(A)完全相同;当dim为2时,该函数返回一个每行上最大元素的列向量。
2)求矩阵的最小元素
MATLAB求一个矩阵A的最小元素可以使用函数min,其调用格式及用法和max函数一样。
【例4-15】 在MATLAB中,用max和min函数求矩阵A的每行和每列的最大和最小元素,并求整个A的最大和最小元素。

程序代码如下:

3.两个维度一样的向量或矩阵对应元素比较
max和min函数还能对两个维度一样的向量或矩阵对应元素求大值和小值。

其中,A和B是同维度的向量或矩阵,Y的每个元素为A和B对应元素的较大者,与A和B同维。
min函数的用法和max一样。
例如,求A和B矩阵对应元素的较大元素Y1和较小元素Y2。
程序代码如下:

4.4.2 矩阵元素的平均值和中值
数据序列的平均值指的是算术平均,中值是指数据序列中其值位于中间的元素,如果数据序列个数为偶数,中值等于中间两项的平均值。
MATLAB求矩阵或向量元素的平均值用mean函数,求中值用median函数。它们的调用方法如下:

例如,求向量X和矩阵A的平均值和中值。
程序代码如下:

4.4.3 矩阵元素的排序
在MATLAB中,可以用函数sort实现数据序列的排序。对于向量X的排序,可以用函数sort(X),函数返回一个对向量X的元素按升序排列的向量。
sort函数还可以对矩阵A的各行或各列的元素重新排序,其调用格式为

其中,当dim为1时,矩阵元素按列排序;当dim为2时,矩阵元素按行排序。dim默认为1。当mode为'ascend',则按升序排序;当mode为'descend',则按降序排序。mode默认取'ascend'。Y为排序后的矩阵,而I记录Y中元素在A中的位置。
例如,对一个向量X和一个矩阵A做各种排序。
程序代码如下:

4.4.4 矩阵元素求和与求积
在MATLAB中,向量和矩阵求和与求积的基本函数是sum和prod,它们的使用方法类似,调用格式为

例如,求一个向量X和一个矩阵A的各元素的和与乘积。
程序代码如下:

4.4.5 矩阵元素的累加和与累乘积
在MATLAB中,向量和矩阵的累加和与累乘积的基本函数是cumsum和cumprod,它们的使用方法类似,调用格式为

例如,求一个向量X和一个矩阵A的各元素的累加和与累乘积。
程序代码如下:

4.4.6 标准方差和相关系数
1.标准方差
对于具有N个元素的向量数据x1,x2,…,xN,有如下两种标准方差的公式:

或

其中

在MATLAB中,可以用函数std计算向量和矩阵的标准方差。对于向量X,std(X)返回一个标准方差;对于矩阵A,std(A)返回一个矩阵A各列或者各行的标准方差向量。std函数的调用格式为

其中,当dim为1时,求矩阵A的各列元素的标准方差;当dim为2时,则求矩阵A的各行元素的标准方差。当flag为0时,按式(4-5)计算标准方差;当flag为1时,按式(4-6)计算标准方差。默认flag=0,dim=1。
例如,求一个向量X和一个矩阵A的标准方差。
程序代码如下:

2.相关系数
对于两组数据序列xi,yi(i=1,2,…,N),可以用下列公式定义两组数据的相关系数:

其中

在MATLAB中,可以用函数corrcoef计算数据的相关系数。corrcoef函数的调用格式为

例如,求两个向量X和Y的相关系数,并求正态分布随机矩阵A的均值、标准方差和相关系数。
程序代码如下:

由上述结果可知,每列的均值接近0,每列的标准方差接近1,验证了A为标准正态分布随机矩阵。