协方差与相关矩阵之间的差异

时间:2016-02-15 14:21:38

标签: matlab matrix correlation covariance

在Matlab中,我创建了一个大小为(244x2014723)的矩阵A. 以及大小为(244x1)

的矩阵B.

我能够使用corr(A,B)计算相关矩阵,2014723x1在大小为2014723x1的矩阵中产生。因此,矩阵A的每一列都与矩阵B相关,并在大小为cov(A,B)的矩阵中给出一个行值。

我的问题是当我使用corr(A,B)要求协方差矩阵时,我得到一个错误,说A和B应该是相同的大小。为什么我会收到此错误?如何找到cov(A,B)long now = System.currentTimeMillis(); bubbleSort(Arrays.copy(array,array.length)); syso("It took " +System.currentTimeMillis() - now); now = System.currentTimeMillis(); selectinSort(Arrays.copy(array,array.length)); syso("It took " +System.currentTimeMillis() - now); //and so on... 不同的方法?

2 个答案:

答案 0 :(得分:0)

请参阅link

在更多关于部分中,描述如何计算cov(A,B)的cov的等式清楚地说明了为什么它们需要具有相同的大小。求和只是一个变量,它枚举了A,B的元素。

答案 1 :(得分:0)

如果您阅读文档,答案非常清楚:

cov

  

如果A和B是观察矩阵,则cov(A,B)将A和B视为向量,并等同于cov(A(:),B(:))。 A和B必须具有相同的大小。

corr

  

corr(X,Y)返回p1-by-p2矩阵,该矩阵包含n-by-p1和n-by-p2矩阵X和Y中每对列之间的成对相关系数。

     

corr(X,Y)和MATLAB®函数corrcoef(X,Y)之间的区别在于corrcoef(X,Y)返回两个列向量X和Y的相关系数矩阵。如果X和Y不是列向量,corrcoef(X,Y)将它们转换为列向量。

你可以通过矩阵的每一列获得向量的协方差的一种方法是使用循环。另一种方式(根据大小可能无效)是

C = cov([B,A])

然后查看第一行(或列)或C