2009-05-12 13 views
6

Matlab 6.5で新しいリリース(R2009a)でテスト済みのプログラムを実行しようとしています プログラムはいくつかのmexファイルを使用していますが、 :新しいmatlabリリースで古いmexファイルを実行中

???無効なMEXファイル '/normalizedCut/common_files/sparsifyc.mexglx': normalizedCut/common_files/sparsifyc.mexglx:シンボルmxGetIr、バージョン libmx.sootはリンク時参照でlibmx.soファイルで定義されていません。

(私がTUNにしようとしているコードは市&リンゴで正規化したカットで、ここで見つけることができます: http://www.cis.upenn.edu/~jshi/software/files/NcutClustering_7.zip

私は、同じシステム上のコードが、Matlabの2007Aを実行しようとした場合、それが実行されますOK。

2009aの下位互換性に問題がありますか? システムのどこかにフラグを設定して、動作するように変更できますか?

私はそれを見つけたとき、私はLD_LIBRARY_PATH環境変数にいくつかの参照を見ましたが、正確に何が追加されるべきかはわかりませんでした。

おかげで、 Yair

答えて

0

これは、MATLABの異なるバージョンでMEX関数を実行している問題であるためにそこにはかなり一般的です。 MatlabのAPIの変更に起因するように見えてきているエラー(私は少し驚いたが)。 gccの変更によって引き起こされるバイナリの非互換性のために私は最も困っていました。 Jiamboに連絡して、新しいバージョンをビルドしたり、ソースをリリースできるかどうかを尋ねることをお勧めします。

最悪の場合、mex機能を再実装することができます。正規化されたカットアルゴリズムは、Matlabでは非常に簡単です(Shi and Malik paperを参照)。 mex関数の名前によって、彼らはほとんどが既存のmatlabの機能(行列の乗算、行列の希薄化)を複製しているように見えます。 Matlabにマルチコアサポートが追加されているため、通常のmコード関数として再実装した方が速くなることはありません。これらのMEX関数のソースコードはこのページの「画像セグメンテーション正規化カットと」ソースで利用可能であるように見える

関連する問題