在 Matlab 中,我创建了一个大小为 (244x2014723)
和大小为 (244x1)
的矩阵 B
我能够使用corr(A,B)
计算相关矩阵,该矩阵在大小为 2014723x1
的矩阵中产生。因此,矩阵 A 的每一列都与矩阵 B 相关,并在大小为 2014723x1
的矩阵中给出一个行值。
我的问题是,当我使用 cov(A,B)
要求协方差矩阵时,我收到一个错误,说 A 和 B 应该具有相同的大小。为什么我会收到此错误?查找corr(A,B)
的方法与cov(A,B)
有何不同?
如果您阅读文档,答案非常清楚:
cov
:
如果 A 和 B 是观测矩阵,则 cov(A,B( 将 A 和 B 视为向量,等价于 cov(A(:),B(:)(。A 和 B 的大小必须相等。
corr
corr(X,Y( 返回一个 p1×p2 矩阵,其中包含 n x p1 和 n×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
.
见链接
在更多关于部分中,描述如何计算cov(A,B(的cov的方程清楚地说明了为什么它们需要相同的大小。求和仅针对一个枚举 A,B 元素的变量。