【问题标题】:How to force Matlab/Octave cov function to use optional parameter如何强制 Matlab/Octave cov 函数使用可选参数
【发布时间】:2012-05-27 11:47:54
【问题描述】:

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

【问题讨论】:

    标签: matlab octave covariance


    【解决方案1】:

    这看起来像是一个 Octave 错误(至少在 3.0.5 版本中);它在 Matlab 中运行良好(至少在 7.10 版中)。

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

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

    【讨论】:

    • 也许有人可以证实这一点...我无法在 Matlab 中尝试,因为我在家没有许可证...
    • 我的意思是确认它在 Octave 中不起作用。当你在 Matlab 中这么说时,我相信你 ;-)
    • @OmarKohl:我也在 Octave 中尝试过,但我的版本已经过时了......
    【解决方案2】:

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

    更好,做

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

    并将其与旧新code

    进行比较

    Opt 是 gone 最近的。在此期间使用 Oli 的技巧

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2014-04-15
      • 2018-12-14
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多