0

Matlab の eigs() 関数を利用するツールボックスを使用しようとしています。これを Octave (Mac OS X に Homebrew 経由でインストールされた 3.6.4) で実行すると、次のように返されます。

error: eigs: not available in this version of Octave

ARPACK(-ng)プログラムをOctaveで動作させることについて、多くの潜在的な解決策を見つけました。覚えているよりも多くの方法を試しましたが、どれもうまくいかなかったようです。

eigs() 関数を使用して Octave の現在のステータスを知っている人はいますか? できればHomebrewのパッケージを使用することで、これは可能ですか?

ありがとう。

4

1 に答える 1

1

3.6以降、Octaveにはeigが付属しなくなり、外部のarpackライブラリに依存しているという事実に言及していると思います。Octave リリース ノートから:

バージョン 3.6 のユーザーに表示される重要な変更の概要:
-------------------------------------------------- -------
...
 ** ARPACK ライブラリは、Octave では配布されなくなりました。
    eigs または svds 関数が必要な場合は、
    パッケージマネージャーまたはコンパイルによる外部 ARPACK
    あなた自身。システム用のプリコンパイル済みパッケージが存在しない場合は、
    現在の ARPACK ソースは次の場所にあります。
    http://forge.scilab.org/index.php/p/arpack-ng

したがって、Octave をインストールする前に、Octave から見える場所に arpack ライブラリをインストールする必要があります。自作の場合、それは /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. そうでない場合は、homebrew-science に対して問題を提起して、arpack のサポートを追加してください。

于 2013-04-25T00:52:27.803 に答える