如何在Mac OS X上的octave 3.6.4中使用eigs()函数

时间:2013-04-15 14:04:13

标签: macos octave homebrew arpack

我正在尝试使用一个利用Matlab的eigs()函数的工具箱。当我在Octave(3.6.4,在Mac OS X上通过Homebrew安装)运行时,返回以下内容:

error: eigs: not available in this version of Octave

我找到了很多可能的解决方案,关于让ARPACK(-ng)程序与Octave一起工作。我已经尝试了更多的方法然后我记得,但似乎都没有。

是否有人使用eigs()函数知道Octave的当前状态?这是可能的,最好是使用Homebrew中的软件包吗?

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你指的是从3.6开始,Octave不再带有eigs,并且依赖于外部的arpack库。来自the Octave release notes

Summary of important user-visible changes for version 3.6:
---------------------------------------------------------
...
 ** The ARPACK library is no longer distributed with Octave.
    If you need the eigs or svds functions you must provide an
    external ARPACK through a package manager or by compiling it
    yourself.  If a pre-compiled package does not exist for your system,
    you can find the current ARPACK sources at
    http://forge.scilab.org/index.php/p/arpack-ng

因此,在安装Octave之前,您需要安装一个arpack库,这是Octave可见的地方。对于自制软件,这意味着在/ usr / local /.

Octave的configure文件具有arpack检测逻辑,看起来默认情况下它会在构建过程中检测到arpack,并且如果存在则构建它。因此,如果安装了Homebrew的八度音程,即使没有特殊支持,Homebrew的八度音也应该接受它。

当前的homebrew-science版本中没有arpack公式,但是有一个打开拉取请求添加一个:https://github.com/Homebrew/homebrew-science/pull/112。去那边评论以显示支持,也许很快就会合并。一旦进入,请brew install libarpack; brew install octave,您的Octave可能会接听eigs。如果没有,那么就提出一个针对自制科学的问题来添加arpack支持。