利用MATLAB实现数据分析 MATLAB数据分析实用指南

1 求最大元素与最小元素

max():求向量或矩阵的最大元素。
min():求向量或矩阵的最小元素。
当参数为向量时,上述函数有两种调用格式:
(1)y=max(X):返回向量x的最大值存入y,如果X中包含复数元素,则按模取最大值。
(2)[y,k]=max(X):返回向量x的最大值存入y,最大值元素的序号存入k,如果X中包含复数元素,则按模取最大值。
例1求向量x的最大元素,其中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行上的最大值。
dim就是维数(英文单词dimension 的缩写)。比如说dim=1就是按照行来算的,dim = 2就是列,dim=3 就是第三维。
思考:对矩阵按行求最大元素,仅使用第一种格式,能够做到吗?
例2 求矩阵A的每行及每列的最大元素,并求整个矩阵的最大元素。
A=

A=[13,-56,78;25,63,-235;78,25,563;1,0,-1];
max(A) 
max(A,[],2)
max(max(A))

思考:用什么方法只调用一次max函数就能求得整个矩阵的最大值?

max((A:)‘)%先将矩阵A变成一个列向量,再将其转置。

2 求平均值与中值

平均值:指算术平均值,即每项数据之和除以项数。
中值:指在数据序列中其值的大小恰好处在中间的元素。如果数据个数为奇数,则取值为大小位于中间的元素;如果数据个数为偶数,则取中间两个元素的平均值。
在MATLAB中,求平均值和中值的函数分别为:
mean():求算术平均值。
median():求中值。
思考:有了平均值,为什么还要中值?
中值的优点是不受偏大或偏小数据的影响,很多情况下用它代表全体数据的一般水平更合适。
例3 某学生宿舍的5位同学月生活费如向量x所示,其中,小明同学家境一般,请问他应该按什么标准向父母主张生活费额度才较为合理。x=[1200,800,1500,1000,5000]

x=[1200,800,1500,1000,5000];
mean(x)
median(x)

3 求和与求积

sum():求和函数。
prod():求积函数。

4 累加和与累乘积

设是一个向量,、是与等长的另外两个向量,并且


则分别称、为的累加和向量和累乘积向量。
在MATLAB中,求累加和与累乘积的函数分别为:
cumsum():累加和函数。
cumprod():累乘积函数。
例4 求向量X=[1,2,3,4,5,6,7,8,9,10]的积与累乘积。

X=[1,2,3,4,5,6,7,8,9,10];
y1=prod(X) 
y2=cumprod(X)

5 求标准差与相关系数

标准差用于计算数据偏离平均数的距离的平均值,其计算公式为


MATLAB中计算标准差的函数为std(),其调用格式为:
(1)std(X):计算向量X的标准差。
(2)std(A):计算矩阵A的各列的标准差。
(3)std(A,flag,dim):flag取0或1,当flag=0时,按,所列公式计算样本标准方差;当flag=1时,按,所列公式计算总体标准方差。在默认情况下,flag=0,dim=1。
例5 生成满足正态分布的50000*4随机矩阵,用不同的形式求其各列之间的标准差。

x=randn(50000,4);
y1=std(x,0,1) 
y2=std(x,1,1) 
x1=x';
y3=std(x1,0,2);
y3' 
y4=std(x1,1,2);
y4'

相关系数能够反映两组数据序列之间相互关系,其计算公式为

在MATLAB中,计算相关系数的函数为corrcoef(),其调用格式为:
(1)corrcoef(A):返回由矩阵A所形成的一个相关系数矩阵,其中,第i行第j列的元素表示原矩阵A中第i列和第j列的相关系数。
(2)corrcoef(X,Y):在这里,X,Y是向量,它们与corrcoef([x,Y])的作用一样,用于求X、Y向量之间的相关系数。
例6 某新产品上市,在上市之前,公司物流部门把新产品分配到不同地区的10个仓库进行销售。产品上市一个月后,公司要对各种不同的分配方案进行评估,以便在下一次新产品上市时进行更准确的分配,避免由于分配不当而产生的积压和断货。下表是相关数据,请判断那种分配方案最为合理。


仓库1月销量方案1方案2方案3
15032600051005200
26532650066005800
35500700054004800
44530400043004200
52300200022002500
63254300035003000
78095900078008500
87530800070007500
93841320035003200
104500520048004000
A=[5032,6000,5100,5200;6532,6500,6600,5800;
      5500,7000,5400,4800;4530,4000,4300,4200;
      2300,2000,2200,2500;3254,3000,3500,3000;
      8095,9000,7800,8500;7530,8000,7000,7500;
      3841,3200,3500,3200;4500,5200,4800,4000];
corrcoef(A)

6 排序

在MATLAB中,排序函数为sort(),其调用格式为:
(1)sort(X):对向量X按升序排列。
(2)[Y,I]=sort(A,dim,mode),其中dim指明对A的列还是行进行排序。mode指明按升序还是降序排序,若取“ascend”,则按升序;若取“descend”,则按降序,默认为升序。输出参数中,Y是排序后的矩阵,而I记录Y中的元素在A中位置。
例7 对下列矩阵A=做各种排序。

A=[1,-8,5;4,12,6;13,7,-13];
sort(A)
sort(A,2,'descend')
[X,I]=sort(A)


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空