在Matlab中,我创建了一个大小为(244x2014723)
的矩阵A.
以及大小为(244x1)
我能够使用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...
不同的方法?
答案 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(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
。