求矩阵和向量元素的平均值的函数是 mean。设 X X X 是一个向量, A A A 是一个矩阵,mean 函数的调用格式如下。
(1) mean(X):返回向量 X X X 的算术平均值。
(2) mean(A):返回一个行向量,其第 i i i 个元素是 A A A 的第 i i i 列的算术平均值。
(3) mean(A,dim):当 dim 为 1 时,该函数等同于 mean(A);当 dim 为 2 时,返回一个列向量,其第 i i i 个元素是 A A A 的第 i i i 行的算术平均值。
求中值的函数是 median,其调用方法和 mean 函数相同。
例如,我们向量 x x x 的平均值。
程序如下:
>> x=[9,-2,5,6,7,12];>>mean(x)ans =6.1667
4. 累加和与累乘积
设 U = ( u 1 , u 2 , u 3 , … , u n ) U=(u_{1},u_{2},u_{3},\dots ,u_{n}) U=(u1,u2,u3,…,un) 是一个向量, V 、 W V、W V、W 是与 U U U 等长的另外两个向量,并且 V = ( ∑ i = 1 1 u i , ∑ i = 1 2 u i , … , ∑ i = 1 n u i ) V=(\sum_{i=1}^{1} u_{i},\sum_{i=1}^{2} u_{i},\dots ,\sum_{i=1}^{n} u_{i}) V=(i=1∑1ui,i=1∑2ui,…,i=1∑nui) W = ( ∏ i = 1 1 u i , ∏ i = 1 2 u i , … , ∏ i = 1 n u i ) W=(\prod_{i=1}^{1} u_{i},\prod_{i=1}^{2} u_{i},\dots ,\prod_{i=1}^{n} u_{i}) W=(i=1∏1ui,i=1∏2ui,…,i=1∏nui)
称 V V V 为 U U U 的累加和向量, W W W 为 U U U 的累积乘向量。在 MATLAB 中,使用 cumsum 和 cumprod 函数能方便地求得向量和矩阵元素地累加和与累乘积向量,它们地调用格式相同,其中 cumsum 函数地调用格式如下。
(1) cumsum(X):返回向量 X X X 累加和向量。
(2) cumsum(A):返回一个矩阵,其第 i i i 列是 A A A 的第 i i i 列的累加和向量。
(3) cumsum(A,dim):当 dim 为 1 时,该函数等同于 cumsum(A);当 dim 为 2 时,返回一个矩阵,其第 i i i 行是 A A A 的第 i i i 行的累加和向量。
对于具有 n n n 个元素的数据序列 x 1 , x 2 , x 3 , … , x n x_{1},x_{2},x_{3},…,x_{n} x1,x2,x3,…,xn,标准差的计算公式如下: S 1 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 S_{1}=\sqrt{\frac{1}{n-1} \sum_{i=1}^{n}(x_{i}-\bar{x})^{2}} S1=n−11i=1∑n(xi−xˉ)2
或 S 2 = 1 n ∑ i = 1 n ( x i − x ˉ ) 2 S_{2}=\sqrt{\frac{1}{n} \sum_{i=1}^{n}(x_{i}-\bar{x})^{2}} S2=n1i=1∑n(xi−xˉ)2
其中 x ˉ = 1 n ∑ i = 1 n x i \bar{x}=\frac{1}{n}\sum_{i=1}^{n} x_{i} xˉ=n1i=1∑nxi
MATLAB 提供了计算数据序列的标准差的函数 std。
对于向量 X X X,std(X) 返回一个标准差。对于矩阵 A A A,std(A) 返回一个行向量,它的各个元素便是矩阵 A A A 各列或各行的标准差。
对于两组数据序列 x i , y i ( i = 1 , 2 , … , n ) x_{i},y_{i}(i=1,2,…,n) xi,yi(i=1,2,…,n),可以由下式计算出两组数据的相关系数: r = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r=\frac{\sum_{i=1}^{n}(x_{i}-\bar x)(y_{i}-\bar y)}{\sqrt{\sum_{i=1}^{n}(x_{i}-\bar x)^{2}\sum_{i=1}^{n}(y_{i}-\bar y)^{2}}} r=∑i=1n(xi−xˉ)2∑i=1n(yi−yˉ)2∑i=1n(xi−xˉ)(yi−yˉ)
MATLAB 提供了 corrcoef 函数,可以求出数据的相关系数矩阵,函数的调用格式如下。
(1) corrcoef(X,Y):其中, X 、 Y X、Y X、Y 是向量。corrcoef(X,Y) 返回序列 X X X 和序列 Y Y Y 的相关系数,导到的结果是一个 2 × 2 2×2 2×2 矩阵,其中对角线上的元素分别表示 X X X 和 Y Y Y 的自相关系数,非对角线上的元素分别表示 X X X 与 Y Y Y 的相关系数和 Y Y Y 与 X X X 的相关系数,两个是相等的。
(2) corrcoef(X):返回从矩阵 X X X 形成的一个相关系数矩阵,其中第 i i i 行第 j j j 列的元素代表原矩阵 X X X 中第 i i i 个列向量和第 j j j 个列向量的相关系数,即 X ( : , i ) X(:, i) X(:,i) 和 X ( : , j ) X(:, j) X(:,j)的相关系数。
相关系数是反映两组数据序列之间的相互关系的指标,类似的指标还有协方差,计算公式如下: c = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) c=\frac{1}{n-1}\sum_{i=1}^{n}(x_{i}-\bar x)(y_{i}-\bar y) c=n−11i=1∑n(xi−xˉ)(yi−yˉ)
求 A,B 两个向量的协方差,将产生一个 2 × 2 2×2 2×2 矩阵,其中 C ( 1 , 1 ) C(1,1) C(1,1) 代表向量 A A A 的自协方差, C ( 1 , 2 ) C(1,2) C(1,2) 代表向量 A A A 与向量 B B B 的协方差, C ( 2 , 1 ) C(2,1) C(2,1) 代表向量 B B B 与向量 A A A 的协方差, C ( 2 , 2 ) C(2,2) C(2,2) 代表向量 B B B 的自协方差。
在 MATLAB 中, n n n 次多项式用一个长度为 n + 1 n+1 n+1 的行向量表示,缺少的幂次项系数为 0。如果 n n n 次多项式表示为 P ( x ) = a n x n + a n − 1 x n − 1 + a n − 2 x n − 2 + ⋯ + a 1 x + a 0 P(x)=a_{n}x^{n}+a_{n-1}x^{n-1}+a_{n-2}x^{n-2}+\dots +a_{1}x+a_{0} P(x)=anxn+an−1xn−1+an−2xn−2+⋯+a1x+a0
则在 MATLAB 中, P ( x ) P(x) P(x) 表达为向量形式: [ a n , a n − 1 , a n − 2 , … , a 1 , a 0 ] [a_{n},a_{n-1},a_{n-2},\dots,a_{1},a_{0}] [an,an−1,an−2,…,a1,a0]。
从上面的运行结果可知,多项式 A A A 除以多项式 B B B 获得商多项式 P P P 为 0.5 x 2 + 4.25 x 1.375 0.5x^{2}+4.25x1.375 0.5x2+4.25x1.375,余项多项式 r r r 为 − 11.375 x − 14.125 -11.375x-14.125 −11.375x−14.125。以下则用本例来验证 deconv 和 conv 是互逆的。
>>conv(B,P)+rans =1800-10
2. 多项式的导函数
求多项式的导函数用 polyder 函数,其调用格式如下。
(1) p=polyder(P):求多项式 P P P 的导函数。
(2) p=polyder(P,Q):求 P ● Q P●Q P●Q 的导函数。
(3) [p,q]=polyder(P,Q):求 P / Q P/Q P/Q 的导函数,导函数的分子存入 p p p,分母存入 q q q。
上述函数调用中,参数 P 、 Q P、Q P、Q 是多项式的向量表示,结果 p 、 q p、q p、q 也是多项式的向量表示。
例如,我们求有理分式的导数。 f ( x ) = 1 x 2 + 5 f(x)=\frac{1}{x^{2}+5} f(x)=x2+51
polyvalm 函数要求 x x x 为方阵,它以方阵为自变量求多项式的值。设 A A A 为方阵, P P P 代表多项式 x 3 − 5 x 2 + 8 x^{3}-5x^{2}+8 x3−5x2+8,那么 polyvalm(P,A) 的含义是 A ∗ A ∗ A − 5 ∗ A ∗ A + 8 e y e ( s i z e ( A ) ) A*A*A-5*A*A+8eye(size(A)) A∗A∗A−5∗A∗A+8eye(size(A))
而 polyval(P,A) 的含义是 A . ∗ A . ∗ A − 5. ∗ A . ∗ A + 8 o n e s ( s i z e ( A ) ) A.*A.*A-5.*A.*A+8ones(size(A)) A.∗A.∗A−5.∗A.∗A+8ones(size(A))