Как использовать функцию eigs() в октаве 3.6.4 на Mac OS X

Я пытаюсь использовать набор инструментов, который использует функцию eigs() Matlab. Когда я запускаю это в Octave (3.6.4, установленный через Homebrew в Mac OS X), возвращается следующее:

error: eigs: not available in this version of Octave

Я нашел много возможных решений, чтобы заставить программу ARPACK(-ng) работать с Octave. Я пробовал больше методов, чем я могу вспомнить, но ни один из них не работал.

Кто-нибудь знает текущий статус Octave с помощью функции eigs()? Возможно ли это, желательно с помощью пакетов в Homebrew?

Спасибо.


person Roemer    schedule 15.04.2013    source источник


Ответы (1)


Я думаю, вы имеете в виду тот факт, что с версии 3.6 Octave больше не поставляется с eigs и зависит от внешней библиотеки arpack. Из примечаний к выпуску Octave:

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-science нет формулы arpack, но есть открытый запрос на добавление ее: https://github.com/Homebrew/homebrew-science/pull/112. Зайдите туда и прокомментируйте, чтобы показать поддержку, и, возможно, это скоро будет объединено. Как только это будет сделано, сделайте brew install libarpack; brew install octave, и ваша Октава вполне может подобрать eigs. Если это не так, то поставьте вопрос против доморощенной науки, чтобы добавить поддержку arpack.

person Andrew Janke    schedule 25.04.2013