如何强制使用Matlab / Octave cov函数来使用可选参数

时间:2012-05-27 11:47:54

标签: matlab octave covariance

我正在使用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之后实施。

2 个答案:

答案 0 :(得分:2)

这看起来像一个Octave错误(至少版本3.0.5);它在Matlab中工作正常(至少在版本7.10中)。

当然,要解决这个问题,你可以计算:

cov(a) * (N-1) / N

答案 1 :(得分:1)

输入help cov,并注意opt 已被删除不存在。

更好,做

gedit /usr/share/octave/3.2.4/m/statistics/base/cov.m

并将其与 old new code

进行比较

最近选择消失。在此期间使用Oli的技巧

修改:我接回来了,这是一项新功能。不确定哪个版本的Octave正在使用它,但您需要升级。如果您可以找到存储库,或者从源代码构建存储库,则执行不稳定的突触升级。

编辑2 :2011年1月添加的功能(3.4.1)。 3.2.4于2010年1月发布。当前版本为3.6.1