我认为您指的是从 3.6 开始,Octave 不再附带 eigs,而是依赖于外部 arpack 库。来自Octave 发行说明:
3.6 版重要的用户可见更改摘要:
-------------------------------------------------- --------
...
** ARPACK 库不再随 Octave 一起分发。
如果您需要 eigs 或 svds 功能,您必须提供
通过包管理器或编译它的外部 ARPACK
你自己。如果您的系统不存在预编译包,
您可以在以下位置找到当前的 ARPACK 来源
http://forge.scilab.org/index.php/p/arpack-ng
因此,您需要在安装 Octave 之前安装一个 arpack 库,该库对 Octave 可见。对于自制软件,这意味着在 /usr/local/ 下。
Octave 的configure
文件具有 arpack 检测逻辑,并且默认情况下它会在构建过程中检测 arpack,并在存在时针对它进行构建。因此,如果您安装了 Homebrew 的 octave,即使在公式中没有对它的特殊支持,它也应该会选择它。
当前的 homebrew-science 版本中没有 arpack 公式,但有一个开放的 pull request 可以添加:https ://github.com/Homebrew/homebrew-science/pull/112 。去那里发表评论以表示支持,也许它很快就会被合并。一旦进入,做brew install libarpack; brew install octave
,你的八度可能会拿起eigs
。如果没有,则提出反对 homebrew-science 的问题以添加 arpack 支持。