Matlab数据统计与分析(一)

本文主要讲述matlab在统计分析中的一些简单应用,后续还将推出多项式计算、数据插值及其应用、曲线拟合及其应用,敬请期待。
一、求最大元素与最小元素
max() :求向量或矩阵的最大元素
min() :求向量或矩阵的最小元素
调用格式如下:
(1) y=max(X) :返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。
(2)[ y,k ]=max(X) :返回向量X的最大值存入y,最大值元素的序号存入k ,如果X中包含复数元素,则按模取最大值。
对于min函数,调用格式与max函数相同。

>> x=[43,72,9,16,23,47]
x =
    43    72     9    16    23    47
>> y=max(x)
y =
    72
>> [y,k]=max(x)
y =
    72
k =
     2

上述例子涉及到的是求向量中的最大值,当参数为矩阵时,会稍有不同
(1) max(A) :返回一个行向量,向量的第i个元素是矩阵A 的第i列上的最大值。
(2) [Y,U]=max(A) :返回行向量Y和U,Y 向量记录A中每列的最大值,U向量记录每列最大值元素的行号。
(3) max(A,[ ],dim) : dim 取1或2。 dim 取1时,该函数的功能和 max(A) 完全相同; dim 取2时,该函数返回一个列向量,其第i 个元素是A矩阵的第i行上的最大值。

>> A=[13,56,78;25,63,235;78,25,563;1,0, 1];
>> max(A)
ans =
    78    63   563
>> [Y,U]=max(A)
Y =
    78    63   563
U =
     3     2     3
>> max(A,[],2)
ans =
    78
   235
   563
     1

二、求矩阵的平均值和中值
此处的平均值指的是算术平均值,即每项数据之和除以项数,中值则指一组有序(顺序一定,从大到小或从小到大)数据处于中间位置的值,若中间位置出现两个值,则求取它们的平均值作为中值。
在matlab中求平均值和中值的函数分别为:
mean() :求算术平均值。
median():求中值。
上述函数有两种调用方式:
(1)M = mean(A)
当参数A为向量时返回A中元素的平均值;
如果A是一个矩阵,mean(A)将其中的各列视为向量,把矩阵中的每列看成一个向量,返回一个包含每一列所有元素的平均值的行向量。
(2)M = mean(A,dim)
返回A中沿着标量dim指定的维数上的元素的平均值。对于矩阵,mean(A,2)就是包含每一行的平均值的列向量。
对于median函数,调用格式与max函数相同。
这里小编就不做代码演示了,大家可以对着软件自己编写一下代码,不过小编有一道思考题要考一下大家,假设A是一个二维矩阵,那么小编如果用mean函数写这样一个语句:M = mean(A,3),结果会是什么?大家赶快实践一下哦!
三、 求和与求积
matlab中求和与求积函数为:
sum(): 求和函数。
prod(): 求积函数。
和第二部分的求平均值和中值类似,这两个函数也主要有两种调用方式:
(1)S = sum( X );
(2)S = sum( X,DIM );
对于这两种函数的返回值可以参考第二部分,小编也就不赘述,下面讲述比较特殊的用法

>> a=[1 2 3;1 2 3;1 2 3];
>> sum( a(:) )
ans =
    18
>> sum(a(:,1))
ans =
     3
>> sum(a(1,:))
ans =
     6

由例子可以看出:
sum( a(😃 ) :意思即为对矩阵中所有元素求和
sum(a(:,1)) :意思即为求矩阵第一列元素之和
sum(a(1,:)) : 意思即为求矩阵第一行元素之和
若将上述的1改为2,则是求第二列或第二行元素之和,对于求己函数prod(),其用法与sum函数完全相同。
四、标准差与相关系数
标准差:在概率统计中最常使用作为统计分布程度上的测量,它反映组内个体间的离散程度。标准差定义是总体各单位标准值与其平均数离差平方的算术平均数的平方根。定义式为:
在这里插入图片描述
其中S1是样本标准差,S2是总体标准差
相关系数:是研究变量之间线性相关程度的量,定义式为:
在这里插入图片描述
其中,Cov(X,Y)为X与Y的协方差,Var[X]为X的方差,Var[Y]为Y的方差。
而matlab直接提供了函数可进行标准差与相关系数的计算,分别为:
std():求数据的标准差。
corrcoef():求数据的相关系数。
调用方式:
首先是std函数的调用方式
(1) std(X) :计算向量X的标准差。
(2) std(A) :计算矩阵A的各列的标准差。
(3) std(A,flag,dim): flag 取0或1,当 flag=0 时,按S1 所列公式计算样本标准方差;当 flag=1 时,按S2 所列公式计算总体标准方差。在默认情况下,flag=0 ,dim=1

>> x=randn(100,4);
>> y1=std(x)
y1 =
    1.0136    1.1564    0.8433    1.0761
>> y2=std(x,0,1)
y2 =
    1.0136    1.1564    0.8433    1.0761
>> y2=std(x,1,1)
y2 =
    1.0086    1.1506    0.8390    1.0707

注:randn函数是生成满足正态分布随机数的函数,上面的randn(100,4)表示生成满足正态分布的 100*4 随机矩阵
其次是corrcoef函数的调用方式
(1)corrcoef(A) :返回由矩阵A所形成的一个相关系数矩阵,其中,第i行第j列的元素表示原矩阵A中第i列和第j列的相关系数。
(2)corrcoef(X,Y) :在这里,X,Y 是向量,用于求X 、Y 向量之间的相关系数。

>>  x=randn(4,4);
>> corrcoef(x)
ans =
    1.0000   -0.8205    0.8434   -0.2629
   -0.8205    1.0000   -0.4339   -0.0657
    0.8434   -0.4339    1.0000   -0.6856
   -0.2629   -0.0657   -0.6856    1.0000

五、排序
MATLAB中排序函数sort()可以对参数的元素进行升序排序或降序排序。
具体用法如下:
(1) Y=sort(X)参数X可以是向量,矩阵。当X是向量时,sort(X)对X的元素进行升序排序;当X是矩阵时,sort(X)对X的每一列进行升序排序;

>> A=randn(3,3)
A =
   -1.4411    0.0543   -0.4631
   -0.1507   -0.1946   -1.6396
   -0.2072    0.9024   -0.0934
>> Y=sort(A)
Y =
   -1.4411   -0.1946   -1.6396
   -0.2072    0.0543   -0.4631
   -0.1507    0.9024   -0.0934

(2)Y=sort(X,DIM,MODE)
参数DIM表示对哪一个维数进行排序,例如当X是一个二维矩阵,当DIM=1时表示对X的每一列进行排序,当DIM=2时表示对X的每一行进行排序。
参数MODE表示按哪一种模式进行排序,当MODE=‘ASCEND’的时进行升序排序,当MODE=‘DESCEND’时,进行降序排序。

>> A=randn(3,3)
A =
   -1.4411    0.0543   -0.4631
   -0.1507   -0.1946   -1.6396
   -0.2072    0.9024   -0.0934
>> Y1=sort(A,2,'descend')
Y1 =
    0.0543   -0.4631   -1.4411
   -0.1507   -0.1946   -1.6396
    0.9024   -0.0934   -0.2072

(3)[Y,I] = sort(X,DIM,MODE)
sort函数里面的参数和第二个里面的相同,I返回索引序列,它表示Y中的元素与X中元素的对应。

>> A=randn(3,3)
A =
   -1.4411    0.0543   -0.4631
   -0.1507   -0.1946   -1.6396
   -0.2072    0.9024   -0.0934
>> [B,I]=sort(A,1,'ascend')  
B =
   -1.4411   -0.1946   -1.6396
   -0.2072    0.0543   -0.4631
   -0.1507    0.9024   -0.0934
I =
     1     2     2
     3     1     1
     2     3     3
  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值