找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6677|回复: 35

MATLAB概率和统计

  [复制链接]
  • 打卡等级:即来则安
  • 打卡总天数:28
  • 打卡月天数:7
  • 打卡总奖励:7961
  • 最近打卡:2025-12-22 17:16:30

3317

主题

285

回帖

2万

积分

管理员

积分
24106
发表于 2019-2-2 21:31:17 | 显示全部楼层 |阅读模式
4.3  概率和统计
MATLAB不仅提供了强大的矩阵运算功能,在线性代数方面有广阔的应用,而且还能对大量的数据进行分析和统计,比如最常用的操作求平均值、最大值、标准差等,还有统计工具箱提供的二项分布、正态分布、泊松分布等,另外还有其他更为深入的统计功能。
4.3.1  基本分析函数
1.sum函数
sum函数用于求矩阵列方向元素或向量的和,调用格式如下。
(1)B=sum(A):若A为向量,则返回所有元素的和;如A为矩阵,则分别对其各列所有元素求和并返回结果。
(2)B=sum(A,dim):分别对矩阵A中第dim维的所有元素求和。
【例4-16】  sum函数应用示例。
>> A = pascal(6)
A =
     1     1     1     1     1     1
     1     2     3     4     5     6
     1     3     6    10    15    21
     1     4    10    20    35    56
     1     5    15    35    70   126
     1     6    21    56   126   252
>> A=A(:,1:4)                   % 创建演示矩阵
A =
     1     1     1     1
     1     2     3     4
     1     3     6    10
     1     4    10    20
     1     5    15    35
     1     6    21    56
>> B=sum(A)                       % 求各列的和
B =
     6    21    56   126
>> C=sum(A')                      % 求转置后矩阵各列的和
C =
     4    10    20    35    56    84
>> D=sum(A,1)                     % 求第1维方向也就是列方向各元素的和
D =
     6    21    56   126
>> E=sum(A,2)                     % 求第2维方向也就是行方向各元素的和
E =
     4
    10
    20
    35
    56
    84
2.cumsum函数
cumsum函数用于求矩阵或向量的累积和,调用格式如下。
(1)B=cumsum(A):若输入参数A为一个向量,则返回该向量所有元素的累积和;若A为矩阵,则返回该矩阵列方向各元素的累积和。
(2)B=cumsum(A,dim):A为矩阵,dim为指定维数,若dim=1,则表示在列方向上求累积和;若dim=2,则表示在行方向上求累积和,如果A是多维矩阵那么dim可以为其他维数。
【例4-17】  cumsum函数应用示例。
>> cumsum(1:5)
ans =
     1     3     6    10    15
>> A=magic(4)
A =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
>> cumsum(A)             %  列方向上求累积和
ans =
    16     2     3    13
    21    13    13    21
    30    20    19    33
    34    34    34    34
>> cumsum(A,1)           %  列方向上求累积和
ans =
    16     2     3    13
    21    13    13    21
    30    20    19    33
    34    34    34    34
>> cumsum(A,2)           %  行方向上求累积和
ans =
    16    18    21    34
     5    16    26    34
     9    16    22    34
     4    18    33    34
通过比较【例4-16】和【例4-17】可以看出cumsum函数和sum函数的区别:cumsum函数是累积和,结果中含有每一步计算的结果,而sum给出的则是最终求和的结果。
3.prod函数
prod函数用于求矩阵元素的积,其调用格式如下。
(1)B=prod(A):若A为向量,则返回所有元素的积;若A为矩阵,则返回各列所有元素的积。
(2)B=prod(A,dim):返回矩阵A中的第dim维方向的所有元素的积。
【例4-18】  prod函数应用示例。
>> prod(1:10)             % 计算10的阶乘
ans =
     3628800
>> M = magic(3)
M =
     8     1     6
     3     5     7
     4     9     2
>> prod(M)              % 列方向求积
ans =
    96    45    84
>> prod(M,2)            % 行方向求积
ans =
    48
   105
    72
4.cumprod函数
cumprod函数用来求矩阵或向量的累积乘积,其调用格式如下。
(1)B=cumprod(A):若输入参数A为一个向量,则返回该向量所有元素的累积乘积;若A为矩阵,则返回该矩阵列方向各元素的累积乘积。
(2)B=cumprod(A,dim):A为矩阵,dim为指定维数,若dim=1,则表示在列方向上求累积乘积;若dim=2就代表在行方向上求累积乘积。
【例4-19】  cumprod函数应用示例。
>> cumprod(1:10)
ans =
  Columns 1 through 7
           1           2           6          24         120         720        5040
  Columns 8 through 10
       40320      362880     3628800>> A = [1 2 3; 4 5 6]
A =
     1     2     3
     4     5     6
>> cumprod(A,1)          %   列方向上求累积乘积
ans =
     1     2     3
     4    10    18
>> cumprod(A,2)          %  行方向上求累积乘积
ans =
     1     2     6
     4    20   120
通过比较【例4-18】和【例4-19】可以看出cumprod函数和prod函数的区别:cumprod函数是求累积乘积,结果中含有每一步计算的结果,而prod给出的则是最终乘积的结果。
5.sort函数
sort函数用于对矩阵元素按升序或者降序进行排序,其调用语法如下。
(1)B=sort(A):对A进行默认的升序排序。输入参量A可以是向量、矩阵或字符串,若为向量,则对向量中的所有元素进行排序;若为矩阵,则对列方向各元素进行排序;若为字符串,则按其对应的ASCII码的大小进行排序。
(2)B=sort(A,dim):对矩阵A中的第dim维进行升序排序。
(3)B = sort(...,mode):按照指定升序或降序进行排序。mode可以是'ascend'(默认,升序),或者是'descend'(降序)。
(4)[B,IX] = sort(A,...):对A进行排序,并返回排序后各元素的下标值。
【例4-20】  sort函数使用示例。
>>  A = [ 3 7 5;0 4 2 ]
A =
     3     7     5
     0     4     2
>> sort(A,1)                %  列方向排序
ans =
     0     4     2
     3     7     5
>> sort(A,2)                %  行方向排序
ans =
     3     5     7
     0     2     4
>> sort(A,2,'descend')      %  行方向降序排序
ans =
     7     5     3
     4     2     0
>> [B,IX] = sort(A,2)      %  排序并返回下标
B =
     3     5     7
     0     2     4
IX =
     1     3     2
     1     3     2
>> B=reshape(18:-1:1,3,3,2)  %  创建高维矩阵
B(:,:,1) =
    18    15    12
    17    14    11
    16    13    10
B(:,:,2) =
     9     6     3
     8     5     2
     7     4     1
>> sort(B,1)              %  列方向排序
ans(:,:,1) =
    16    13    10
    17    14    11
    18    15    12
ans(:,:,2) =
     7     4     1
     8     5     2
     9     6     3
>> sort(B,2)             %  行方向排序
ans(:,:,1) =
    12    15    18
    11    14    17
    10    13    16
ans(:,:,2) =
     3     6     9
     2     5     8
     1     4     7
>> sort(B,3)           %  页方向排序
ans(:,:,1) =
     9     6     3
     8     5     2
     7     4     1
ans(:,:,2) =
    18    15    12
    17    14    11
    16    13    10
6.sortrows函数
sortrows函数用于在保持各行相对元素不变的情况下,对各行整体进行升序排列。sortrows函数调用语法如下。
(1)B = sortrows(A):按行对A进行升序排列。输入变量A必须是矩阵或者列向量。
(2)B = sortrows(A,column):基于向量column指定的列对矩阵A进行排序。
(3)[B,index] = sortrows(A,...):在对矩阵A进行排序的同时,返回下标索引。如果A是一个列向量,则B = A(index);如果A是一个m×n的矩阵,则B = A(index,
【例4-21】  sortrows函数使用示例。
>> rand('state',0)                    %  设定随机数种子,以便于读者验证
>> A = floor(rand(6,7) * 100);     %  创建测试矩阵,floor函数用于取整,以便于观察
>> A(1:4,1)=95;  A(5:6,1)=76;  
>> A(2:4,2)=7;  A(3,3)=73       %   修改部分数据,以体现函数用法
A =
    95    45    92    41    13     1    84
    95     7    73    89    20    74    52
    95     7    73     5    19    44    20
    95     7    40    35    60    93    67
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1
>> B = sortrows(A)            %  按照第1列元素大小对矩阵A进行排序
B =
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1
    95     7    40    35    60    93    67
    95     7    73     5    19    44    20
    95     7    73    89    20    74    52
    95    45    92    41    13     1    84
通过比较可以看到,矩阵A中第1列具有相等的元素。sortrows函数在进行排序操作时,如果指定列中存在相等元素,则通过比较指定列右侧列中的元素来进行排序,右侧列中若还有相等元素,则按照右侧再下一列的元素进行排序。
>> C = sortrows(A,2)          %  按照第2列的大小进行排序
C =
    95     7    73    89    20    74    52
    95     7    73     5    19    44    20
    95     7    40    35    60    93    67
    95    45    92    41    13     1    84
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1
>> D = sortrows(A,[1 7])      %  按照第1列和第7列进行排序
D =
    76    79    91     0    19    41     1
    76    61    93    81    27    46    83
    95     7    73     5    19    44    20
    95     7    73    89    20    74    52
    95     7    40    35    60    93    67
    95    45    92    41    13     1    84
>> E = sortrows(A,[1 -7])       %  按照第1列和第7列进行排序
E =
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1
    95    45    92    41    13     1    84
    95     7    40    35    60    93    67
    95     7    73    89    20    74    52
    95     7    73     5    19    44    20
矩阵D和E都是按照第1列和第7列进行排序,即首先按照第1列进行排序,如果第1列中存在相等元素,则按照第7列进行排序。参数[1 -7]中的负号的含义是按照降序排序。
>> F = sortrows(A, -4)  %  按照第4列进行降序排序
F =
    95     7    73    89    20    74    52
    76    61    93    81    27    46    83
    95    45    92    41    13     1    84
    95     7    40    35    60    93    67
    95     7    73     5    19    44    20
    76    79    91     0    19    41     1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
工控课堂 www.gkket.com

0

主题

116

回帖

366

积分

注册会员

积分
366
发表于 2019-2-2 21:32:55 | 显示全部楼层
无回帖,不论坛,这才是人道。
工控课堂 www.gkket.com

0

主题

137

回帖

396

积分

注册会员

积分
396
发表于 2019-2-2 21:53:54 | 显示全部楼层
真是被感动的痛哭流涕……
工控课堂 www.gkket.com

0

主题

157

回帖

390

积分

注册会员

积分
390
发表于 2019-2-2 21:57:53 | 显示全部楼层
真是难得给力的帖子啊。
工控课堂 www.gkket.com

0

主题

181

回帖

526

积分

中级会员

积分
526
发表于 2019-2-2 21:57:53 | 显示全部楼层
楼主加油,我们都看好你哦。
工控课堂 www.gkket.com

0

主题

152

回帖

383

积分

注册会员

积分
383
发表于 2019-2-2 22:09:08 | 显示全部楼层
党的好公民,人民的好公仆。。。
工控课堂 www.gkket.com

0

主题

179

回帖

443

积分

注册会员

积分
443
发表于 2019-2-2 22:17:37 | 显示全部楼层
看了楼主的帖子,不由得精神一振,豁然开朗,牛掰
工控课堂 www.gkket.com

0

主题

176

回帖

299

积分

注册会员

积分
299
发表于 2019-2-2 22:21:58 | 显示全部楼层
无回帖,不论坛,这才是人道。
工控课堂 www.gkket.com

0

主题

124

回帖

298

积分

注册会员

积分
298
发表于 2019-2-2 22:31:22 | 显示全部楼层
党的好公民,人民的好公仆。。。
工控课堂 www.gkket.com

0

主题

188

回帖

344

积分

注册会员

积分
344
发表于 2019-2-2 22:37:15 | 显示全部楼层
看了楼主的帖子,不由得精神一振,豁然开朗,牛掰
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 20:39 , Processed in 0.099315 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表