China-pub.com 下载 第6章 数据分析和统计 在本章中将介绍MATLAB对数据处理和统计分析的命令。如果没有特别强调,本章中的 A和B是指mXnX...Xp的多维矩阵,x是一个向量。 6.1最大值和最小值 用命令集55中列出的命令可以求解最大值。 命令集55 最大值和最小值 max(x)】 返回x中最大的元素值,如是复数,则返回max(abs(x))值。 max(A) 返回一个含有A中第1维最大值的1×nX…×p矩阵。对于二 维矩阵来说,返回一个行向量,它的第1个元素是A中第1列 的最大的元素:如果A为复数时,则返回max(abs(A))值。 [y,ind]=max(A) 返回一个含有A中第1维最大值的1×n×…×p矩阵y,并在行 向量ind中保存每列的最大数的行下标。 max(A,B) 返回一个和A、B相同维数的矩阵,每一元素都是在A和B中 的相同位置上是最大的元素。 C=max (A,[]dim) 给出在指定的dim维内A的最大分量。如max(A,[】,1),则 给出A中最大的行向量。 min(x) 返回向量x中最小的元素。该命令关于矩阵的操作和max一样, 如果x是复数,则返回min(abs(x))值。 ■例6.1 创建一个三维矩阵A: A(:,:,1)=[123;231;321]; A(:,:,2)=[246;462;642]; 显示结果为: A(:,:,1)= 2 3 之 3 5 1 A(:,:,2)= 2 6 4 6 2 6 % 2 求其中的最大值可用命令: max(A)
下载 第6章 数据分析和统计 在本章中将介绍 M AT L A B对数据处理和统计分析的命令。如果没有特别强调,本章中的 A和B是指m×n×. . .×p的多维矩阵,x是一个向量。 6.1 最大值和最小值 用命令集5 5中列出的命令可以求解最大值。 命令集5 5 最大值和最小值 m a x ( x ) 返回x中最大的元素值,如果x是复数,则返回m a x ( a b s ( x ) )值。 m a x ( A ) 返回一个含有 A中第1维最大值的 1×n×. . .×p矩阵。对于二 维矩阵来说,返回一个行向量,它的第 1个元素是A中第1列 的最大的元素;如果A为复数时,则返回m a x ( a b s ( A ) )值。 [ y , i n d ] = m a x ( A ) 返回一个含有A中第1维最大值的1×n×. . .×p矩阵y,并在行 向量i n d中保存每列的最大数的行下标。 m a x ( A , B ) 返回一个和 A、B相同维数的矩阵,每一元素都是在 A和B中 的相同位置上是最大的元素。 C = m a x ( A , [ ] , d i m ) 给出在指定的d i m维内A的最大分量。如 m a x ( A , [ ] , 1 ),则 给出A中最大的行向量。 m i n ( x ) 返回向量x中最小的元素。该命令关于矩阵的操作和m a x一样, 如果x是复数,则返回m i n ( a b s ( x ) )值。 ■ 例6 . 1 创建一个三维矩阵A: 显示结果为: 求其中的最大值可用命令: m a x ( A )
China-pub.com 第6章数据分析和统计 83 下载 ans(:,:,1)= 3 3 3 ans(:,:,2)= 6 6 输入whos可获得A的详细情况: Name Size Bytes Class A 3x3x2 144 double array ans 1x3x2 48 double array Grand total is 24 elements using 192 bytes ■ 6.2求和、乘积和差分 使用命令sum和cums um可以求得各种不同的和。 命令集56 求和 sum(x) 返回向量x所有元素的和。 sum(A) 返回一个包含矩阵A各列元素之和的1×n×…×p矩阵。 cumsum (x) 返回一个x中元素累计和的向量,也就是第2个元素是x中前两个 元素之和,以此类推。 cums um(A) 返回一个与A同样大小的矩阵,它的列是A中列的累计和。 cumsum(A,dim) 给出A中dim维的元素累计和,命令cumsum(A)和命令 cumsum(A,1)相同。 ■例6.2 对例6.1中的矩阵A进行求和及累计和,其操作如下: TheSum sum(A),TheCsum cumsum(A) TheSum(:,:,1)= 675 TheSum(:,:,2))= 12 1410 TheCsum(:,:,1)= 1 2 3 3 4 6 7 5 TheCsum(:,:,2)= 246 6 10 8 12 1410 图6-1说明了MATLAB是如何来计算sm(A)的。各列相加后存放到×3×2的三维数组TheSum中
输入w h o s可获得A的详细情况: 6.2 求和、乘积和差分 使用命令s u m和c u m s u m可以求得各种不同的和。 命令集5 6 求和 s u m ( x ) 返回向量x所有元素的和。 s u m ( A ) 返回一个包含矩阵A各列元素之和的1×n×. . .×p矩阵。 c u m s u m ( x ) 返回一个x中元素累计和的向量,也就是第 2个元素是x中前两个 元素之和,以此类推。 c u m s u m ( A ) 返回一个与A同样大小的矩阵,它的列是 A中列的累计和。 c u m s u m ( A , d i m ) 给出 A 中d i m维的元素累计和,命令 c u m s u m ( A ) 和命令 c u m s u m ( A , 1 )相同。 ■ 例6 . 2 对例6 . 1中的矩阵A进行求和及累计和,其操作如下: 图6 - 1说明了M AT L A B是如何来计算s u m ( A )的。各列相加后存放到1×3×2的三维数组T h e S u m中。 第6章 数据分析和统计 8 3 下载 ■
84 China-pub.com MATLAB5手册 下载 =12.-=14 0 图6-1三维数组中求和sm(A)示意图 ■ 乘积的计算也和这相似。 命令集57 乘积 prod(x) 返回x中各元素乘积。 prod(A) 返回一个元素是列乘积的多维矩阵。 prod(A,dim) 给出dim维内的元素乘积。 cumprod(x) 返回一个x中各元素累计积的向量,也就是第2个元素是x 中前两个元素的累计积,以此类推。 cumprod(A) 返回一个矩阵,其中列元素是A中列元素的累计积。 cumprod(A,dim) 给出在dim维内的累计积。 ■例6.3 假设使用定义在例6.1中的矩阵A,执行命令: TheProd prod(A),TheCprod cumprod(A) 返回得到: TheProd(:,:,1)= 6123 TheProd(:,:,2)= 48 96 24 TheCprod(:,:,1)= 1 2 3 2 6 3 6 12·3 TheCprod(:,:,2)= 2 4 6 8 24 12 48 96 24 使用命令diff可以进行差分计算,还有一些与命令diff相关的其他命令。 命令集58 差分和梯度 diff(x) 给出一个长度为m一1的向量,它的元素是长度为的向量x中相邻的
图6-1 三维数组中求和s u m ( A ) 示意图 乘积的计算也和这相似。 命令集57 乘积 p r o d ( x ) 返回x中各元素乘积。 p r o d ( A ) 返回一个元素是列乘积的多维矩阵。 p r o d ( A , d i m ) 给出d i m维内的元素乘积。 c u m p r o d ( x ) 返回一个x中各元素累计积的向量,也就是第 2个元素是x 中前两个元素的累计积,以此类推。 c u m p r o d ( A ) 返回一个矩阵,其中列元素是 A中列元素的累计积。 cumprod(A, dim) 给出在d i m维内的累计积。 ■ 例 6 . 3 假设使用定义在例6 . 1中的矩阵A,执行命令: 返回得到: 使用命令d i f f可以进行差分计算,还有一些与命令 d i f f相关的其他命令。 命令集5 8 差分和梯度 d i f f ( x ) 给出一个长度为n-1的向量,它的元素是长度为n的向量x中相邻的 8 4 M ATLAB 5 手册 下载 ■ ■
China-pub.Com 第6章数据分析和统计 85 下载 元素的差。如果-x,x,…x),则iff户一,x,一x diff(A) 在A的第一维内计算相邻元素的差分。对于二维矩阵来说,就 是diff(A)=A(2:m,:)-A(1:m-1,:)。 diff(x,k) 求出第k次差分,diff(x,2)和diff(diff(x))等价。 diff (A,k,dim) 在dim维内求出第k次差分。 [DAdx,DAdy, 在矩阵DAdx、DAdy、DAdz等中返回矩阵A的偏导数,每个矩 DAdz,···]= 阵包含aA/、a4A/、a4/a:等相应的下标。在MATLAB中输入 gradient(A) help gradie可得到更多信息,也可参见例13.16。 [DAdx,DAdy, 返回偏导数04@、a4Ox、a40z等,如果给出参量1,2,h3,可 DAdz,··.]= 将它们用作每个变量的步长。 gradient(A,h1, h2,h3,···) del2(A) 返回离散拉普拉斯算子,矩阵中的元素为A中元素和它相邻的 四个元素的平均值的差分。 为了使函数z=f,y)的梯度的四个极值形象化,在颜色盘一节的图P-5中使用了gradient命 令 ■例6.4 差分计算很容易,它还可以当作导数的近似值来用。 x=[1491625]; d1 diff(x),d2 diff(d1),d3 diff(d2) 得到的结果为: d1= d2= 2 d3= ■ 注意,如果将计算得到的差分作为导数的近似值来用,必须除以两点之间的距离。 6.3统计命令 在前一节中提到了对矩阵列操作的命令,比如max、min、sum和prod。下面给出了数 据统计分析的命令描述。 命令集59 平均值、中值和标准差 mean (x) 求出向量x的算术平均值
元素的差。如果x= (x1 x2 . . . xn ),则d i f f( x )= (x2-x1 x3-x2 . . . xn-xn-1 )。 d i f f ( A ) 在A的第一维内计算相邻元素的差分。对于二维矩阵来说,就 是d i f f ( A ) = A ( 2 : m , : )-A ( 1 : m-1 , : )。 d i f f ( x , k ) 求出第k次差分,d i f f ( x , 2 )和d i f f ( d i f f ( x ) )等价。 d i f f ( A , k , d i m ) 在d i m维内求出第k次差分。 [ D A d x , D A d y , 在矩阵D A d x、D A d y、 D A dz等中返回矩阵A的偏导数,每个矩 D A d z ,. . .] = 阵包含 A / x、 A / y、 A / z等相应的下标。在M AT L A B中输入 g r a d i e n t ( A ) help gradient可得到更多信息,也可参见例 1 3 . 1 6。 [ D A d x , D A d y , 返回偏导数¶A/ ¶x、¶A/ ¶y、¶A /¶ z等,如果给出参量h1,h2 , h3 . . . .,可 D A d z ,. . .]= 将它们用作每个变量的步长。 g r a d i e n t ( A , h 1 , h 2 , h 3 ,. . .) d e l 2 ( A ) 返回离散拉普拉斯算子,矩阵中的元素为 A中元素和它相邻的 四个元素的平均值的差分。 为了使函数z = f ( x , y )的梯度的四个极值形象化,在颜色盘一节的图P - 5中使用了g r a d i e n t命 令。 ■ 例6 . 4 差分计算很容易,它还可以当作导数的近似值来用。 得到的结果为: 注意,如果将计算得到的差分作为导数的近似值来用,必须除以两点之间的距离。 6.3 统计命令 在前一节中提到了对矩阵列操作的命令,比如 m a x、m i n、s u m和p r o d。下面给出了数 据统计分析的命令描述。 命令集5 9 平均值、中值和标准差 m e a n ( x ) 求出向量x的算术平均值。 第6章 数据分析和统计 8 5 下载 ■
86 China-pub.com MATLAB5手册 下载 mean(A,dim) 给出一个1×n×…×p的矩阵,它包含A中第1维的各个平均值。 如果给出了dim,就在dim维内计算。 median(x) 求出向量x中元素的中值。 median(A,dim) 给出一个1×nX,×p的矩阵,它包含A中第1维各列的中值。如 果给出了dim,就在dim维内计算。 std(x) 求出向量x中元素的标准差。 std(A,dim) 给出一个1×n××p的矩阵,它包含A中第1维的各列标准差。 如果给出了dim,就在dim维内计算标准差。 ■例6.5 令A为: 2 3 4 100 然后执行下列命令: average mean(A),med median(A),dev std(A) 返回得到: average 2.5000 26.5000 med 2.5000 2.5000 dev 1.2910 49.0068 MATLAB中命令cov和corrcofe是用来求协方差和相关系数的,这些命令只能用在二 维矩阵中。 命令集60 协方差和相关系数 cov(x) 求向量x的协方差。 cov(A) 求协方差矩阵,对角线元素是A中各列的方差。 cov(x,y) 等同于cov([xy])x和y是列向量。 corrcoef(A) 求相关矩阵。 corrcoef(x,y) 等同于corrcoef([xy,)x和y是列向量。 ■例6.6 假设定义如下向量:
m e a n ( A ,d i m) 给出一个1×n×. . .×p的矩阵,它包含 A中第1维的各个平均值。 如果给出了d i m,就在d i m维内计算。 m e d i a n ( x ) 求出向量x中元素的中值。 m e d i a n ( A ,d i m) 给出一个1×n×. . .×p的矩阵,它包含A中第1维各列的中值。如 果给出了d i m,就在d i m维内计算。 s t d ( x ) 求出向量x中元素的标准差。 s t d ( A ,d i m) 给出一个1×n×. . .×p的矩阵,它包含 A中第1维的各列标准差。 如果给出了d i m,就在d i m维内计算标准差。 ■ 例6 . 5 令A为: 然后执行下列命令: 返回得到: M AT L A B中命令c o v和c o r r c o f e是用来求协方差和相关系数的,这些命令只能用在二 维矩阵中。 命令集6 0 协方差和相关系数 c o v ( x ) 求向量x的协方差。 c o v ( A ) 求协方差矩阵,对角线元素是 A中各列的方差。 c o v ( x , y ) 等同于cov([x y]),x和y是列向量。 c o r r c o e f ( A ) 求相关矩阵。 c o r r c o e f ( x , y ) 等同于corrcoef([x y]),x和y是列向量。 ■ 例6 . 6 假设定义如下向量: 8 6 M ATLAB 5 手册 下载 ■