我正在使用 Matlab 和 Octave 的 cov(协方差)函数。实际上我正在使用Octave,但最终它必须对两者都适用。此函数具有可选的第二个或第三个参数,用于指示是否应使用 N 或 N-1 进行归一化。
如果我这样做:cov(points,1)
(其中点是 4x2 矩阵),我会收到以下错误:
error: cov: x and y must have the same number of observations
一般来说,我想知道 Matlab/Octave 如何区分第二个参数是另一个矩阵还是可选参数(因为它可以有 2 个或 3 个参数)。
更具体地说,我想知道如何解决我的问题?
Matlab cov() 文档:http://www.mathworks.de/help/techdoc/ref/cov.html
Octave cov() 文档:http://www.gnu.org/software/octave/doc/interpreter/Correlation-and-Regression-Analysis.html
编辑:我在 Ubuntu 12.04 上使用 Octave 3.2.4
EDIT2:解决方案是安装较新版本的 Octave。该功能是3.2之后实现的。
最佳答案
这看起来像是一个 Octave 错误(至少对于 3.0.5 版本);它在 Matlab 中运行良好(至少在 7.10 版本中)。
当然,要解决此问题,您可以计算:
cov(a) * (N-1) / N
关于matlab - 如何强制 Matlab/Octave cov 函数使用可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10773757/