文章目录

  • 0前言
  • 1 求最大元素与最小元素
  • 2 求平均值与中值
  • 3 求和与求积
  • 4 累加和与累乘积
  • 5 求标准差与相关系数
  • 6 排序
  • 7 结语

0前言

本文是科学计算与MATLAB语言的专题6的第1小节总结笔记,并结合了自己一点的理解,看完本文,可以轻松借助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= [ 13 − 56 78 25 63 − 235 78 25 563 1 0 − 1 ] \left[\begin{matrix} 13&-56&78\\ 25&63&-235\\ 78&25&563\\ 1&0&-1 \end{matrix}\right] ⎣⎢⎢⎡​1325781​−5663250​78−235563−1​⎦⎥⎥⎤​

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 累加和与累乘积

设 U = ( u 1 , u 2 , u 3 . . . u n ) U=(u_1,u_2,u_3...u_n) U=(u1​,u2​,u3​...un​)是一个向量, V V V、 W W W是与 U U U等长的另外两个向量,并且
V = ( ∑ i = 1 1 u i , ∑ i = 1 2 u i , ∑ i = 1 3 u i , . . . , ∑ i = 1 n u i ) V=(\sum\limits_{i=1}^1u_i,\sum\limits_{i=1}^2u_i,\sum\limits_{i=1}^3u_i,...,\sum\limits_{i=1}^nu_i) V=(i=1∑1​ui​,i=1∑2​ui​,i=1∑3​ui​,...,i=1∑n​ui​)
W = ( ∏ i = 1 1 u i , ∏ i = 1 2 u i , ∏ i = 1 3 u i , . . . , ∏ i = 1 n u i ) W=(\prod\limits_{i=1}^1u_i,\prod\limits_{i=1}^2u_i,\prod\limits_{i=1}^3u_i,...,\prod\limits_{i=1}^nu_i) W=(i=1∏1​ui​,i=1∏2​ui​,i=1∏3​ui​,...,i=1∏n​ui​)
则分别称 V V V、 W W W为 U U U的累加和向量和累乘积向量。
在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 求标准差与相关系数

标准差用于计算数据偏离平均数的距离的平均值,其计算公式为
S 1 = 1 N + 1 ∑ i = 1 N ( x i − x ˉ ) 2 S_1=\sqrt {\frac{1}{N+1}\sum\limits_{i=1}^N(x_i-\bar{x})^2} S1​=N+11​i=1∑N​(xi​−xˉ)2 ​
S 2 = 1 N ∑ i = 1 N ( x i − x ˉ ) 2 S_2=\sqrt {\frac{1}{N}\sum\limits_{i=1}^N(x_i-\bar{x})^2} S2​=N1​i=1∑N​(xi​−xˉ)2 ​
MATLAB中计算标准差的函数为std(),其调用格式为:
(1)std(X):计算向量X的标准差。
(2)std(A):计算矩阵A的各列的标准差。
(3)std(A,flag,dim):flag取0或1,当flag=0时,按 S 1 S_1 S1​,所列公式计算样本标准方差;当flag=1时,按 S 2 S_2 S2​,所列公式计算总体标准方差。在默认情况下,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'

相关系数能够反映两组数据序列之间相互关系,其计算公式为
r = ∑ ( x i − x ˉ ) ( y i − y ˉ ) ∑ ( x i − x ˉ ) 2 ∑ ( x i − y ˉ ) 2 r=\frac{\sum(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum(x_i-\bar{x})^2\sum(x_i-\bar{y})^2}} r=∑(xi​−xˉ)2∑(xi​−yˉ​)2 ​∑(xi​−xˉ)(yi​−yˉ​)​
在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
1 5032 6000 5100 5200
2 6532 6500 6600 5800
3 5500 7000 5400 4800
4 4530 4000 4300 4200
5 2300 2000 2200 2500
6 3254 3000 3500 3000
7 8095 9000 7800 8500
8 7530 8000 7000 7500
9 3841 3200 3500 3200
10 4500 5200 4800 4000
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= [ 1 − 8 5 4 12 6 13 7 − 13 ] \left[ \begin{matrix} 1&-8&5\\ 4&12&6\\ 13&7&-13 \end{matrix} \right] ⎣⎡​1413​−8127​56−13​⎦⎤​做各种排序。

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

7 结语

如果本文对您有帮助,请您点赞

如何利用MATLAB对数据统计分析?相关推荐

  1. 利用MATLAB对数据进行切片并绘制图表

    利用MATLAB对数据进行切片并绘制图表 文章目录 利用MATLAB对数据进行切片并绘制图表 1 读取txt文件 2 对矩阵进行切片,提取信息 3 使用MATLAB绘图 4 附录--完整代码 1 读取 ...

  2. 利用MatLab对数据进行插值计算(分段插值和三次样条插值)

    利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...

  3. 如何利用MATLAB进行数据插值?

    文章目录 前言 1 引例-零件加工问题 2 数据插值的计算机制 3 数据插值的实现方法 3 应用案例1-粮储仓的通风控制问题 4 应用案例2-机动车刹车距离问题 5 应用案例3-沙盘制作问题 总结 前 ...

  4. 利用MATLAB进行数据的批量拟合和预测

    利用MATLAB进行数据的批量拟合和预测 问题简介 首先,我得到了这样一组数据,横坐标是温度,纵坐标是位置,数据内容是某一变量随温度和位置的变化,如下: 我需要得到的是变量与温度和位置的具体关系,即输 ...

  5. 利用Matlab考察数据的边缘正态性 作Q_Q图

    一.实验数据 需要考察多个变量的边缘正态性 二.考察边缘正态性 1.原理 可以通过对每个变量的样本观测值的边缘分布作Q_Q图和计算相关系数 r_Q 来考察. Matlab自带有作Q_Q图的函数qqpl ...

  6. matlab可以使用词云分析吗,利用豆瓣短评数据生成词云

    在之前的文章中,我们获得了豆瓣爬取的短评内容,汇总到了一个文件中,但是,没有被利用起来的数据是没有意义的. 前文提到,有一篇微信推文的关于词云制作的一个实践记录,准备照此试验一下. 思路分析 读文件 ...

  7. matlab segy文件,利用matlab实现segy格式数据的读写研究和分析.ppt

    利用matlab实现segy格式数据的读写研究和分析 2.SEGY数据格式 地震数据一般以地震道为单位进行组织,采用SEG-Y文件格式存储.SEG-Y格式是由SEG (Society of Explo ...

  8. Matlab二维图导入ansys,(原创教程)利用Matlab对ANSYS数据进行后处理.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab (原创教程)利用Matlab对ANSYS数据进行后 ...

  9. 利用Matlab对Excel数据表参数进行频谱分析(FFT)的方法

    1.先在表格中创建一列时间点,根据采样周期来设定时间点间隔,如采样周期为10kHz,则间隔点为0.0001.每个时间点对应一个采样值.第一行表格写上对应列的名称,如ts.ia.然后用Matlab&qu ...

最新文章

  1. c++控制台下输出sin函数图形
  2. python redis事务_python redis事务源码及应用分析
  3. python从入门到实践django看不懂_Python编程:从入门到实践踩坑记 Django
  4. Google Wave了解(资料收集)
  5. 全备份失败后,如何手工清除exchange日志文件,附微软KB
  6. 计算机管理也无法运行,【两种解决方法】任务管理器打不开怎么办?
  7. 教你制作U盘,内存卡,硬盘等等等的漂亮背景
  8. 线性代数 —— 矩阵的行列式
  9. 微软 SQL Server 2016 迁移技术培训实验营
  10. 基于linux在线预览
  11. Java 实现图书管理系统
  12. web安全:QQ号快速登录漏洞及被盗原理
  13. nofllow html5,NoFollow:高亮显示nofollow标签
  14. 2022年山东省安全员C证考试资料及山东省安全员C证考试试题
  15. 【微信小程序学习笔记02理解与初始准备】【实战天气微信小程序】
  16. 苹果手机技巧计算机,苹果的基本操作,不知道你还敢说你的手机是苹果
  17. idea快速搭建ssm框架
  18. 记录华为游戏SDK,ResourceLoaderUtil.getStringId() 空指针问题
  19. Node.js学习(express+node项目实战)
  20. tair mysql_MySQL数据库异构数据同步–后端以tair为例

热门文章

  1. OKEx调整上币规则,波多野结衣出席“AVH”发布会 | 区块链日报
  2. try again Please try again(python)
  3. Tomcat:第二章:Tomcat日志文件分析
  4. Java基础——吃货联盟订餐系统
  5. java设备imei号_如何正确查询你的 iPhone、iPad 和 Mac 设备的保修
  6. 提高yolov4目标检测的技巧
  7. linux递归强行删除目录和文件
  8. 安全攻防 | 初识(fileless malware)无文件非恶意软件
  9. 如果你年满25岁还未到30岁
  10. Spring框架【尚硅谷】