首页 文章

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

提问于
浏览
2

我正在使用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 回答

  • 2

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

    更好的是,做

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

    并将其与旧的新code进行比较

    Opt最近消失了 . 在此期间使用Oli的伎俩

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

    Edit 2 :2011年1月增加的功能(3.4.1) . 3.2.4于2010年1月发布 . 当前版本为3.6.1

  • 1

    这看起来像Octave bug(至少版本3.0.5);它在Matlab中运行良好(至少在版本7.10中) .

    当然,要解决,你可以计算:

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

相关问题