我正在使用Matlab和Octave的 cov (协方差)函数 . 实际上我正在使用 Octave ,但最终它必须同时适用于两者 . 此函数有一个可选的第二个或第三个参数,用于指示是否应使用 N 或N-1完成 normalization .
如果我这样做: cov(points,1)
(其中点是4x2矩阵)我得到以下错误:
error: cov: x and y must have the same number of observations
总的来说,我想知道Matlab / Octave如何区分第二个参数是另一个矩阵还是一个可选参数(因为它可以有2个或3个参数) .
更具体地说我想知道 how can I solve my problem?
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 回答
输入
help cov
,并注意已删除opt
不存在 .更好的是,做
并将其与旧的新code进行比较
Opt最近消失了 . 在此期间使用Oli的伎俩
Edit :我接回来了,这是一个新功能 . 不确定哪个版本的Octave正在使用它,但您需要升级 . 如果您可以找到存储库,或者从源代码构建存储库,则执行不稳定的突触升级 .
Edit 2 :2011年1月增加的功能(3.4.1) . 3.2.4于2010年1月发布 . 当前版本为3.6.1
这看起来像Octave bug(至少版本3.0.5);它在Matlab中运行良好(至少在版本7.10中) .
当然,要解决,你可以计算: