6

新しいリリース(R2009a)のMatlab 6.5で最初にテストされたプログラムを実行しようとしています。プログラムはいくつかのmexファイルを使用しますが、実行しようとすると次のエラーが発生します。

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

(私が調整しようとしているコードは、Shi&Malicによる正規化されたカットであり、ここで見つけることができます:http: //www.cis.upenn.edu/~jshi/software/files/NcutClustering_7.zip

同じシステムでコードを実行しようとすると、Matlab2007aは正常に実行されます。

2009aの下位互換性に問題はありますか?システムのどこかに、それが機能するのを助けるために変更できるフラグはありますか?

グーグルで検索したところ、LD_LIBRARY_PATH env変数への参照がいくつか見られましたが、正確に何を追加する必要があるのか​​わかりませんでした。

ありがとう、Yair

4

2 に答える 2

4

これらの mex 関数のソース コードは、このページの「正規化されたカットによる画像セグメンテーション」ソースで利用できるようです: http://www.cis.upenn.edu/~jshi/software/ (解凍されたファイルの specific_NcutImage_files サブディレクトリにあります) 。ジップ)

于 2009-12-13T22:43:23.397 に答える
0

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

最悪の場合、これらの mex 関数を再実装してみることができます。正規化カット アルゴリズムは、Matlab では非常に単純です ( Shi と Malik の論文を参照してください)。mex 関数の名前を見ると、既存の matlab 機能 (行列乗算、行列スパース化) をほとんど複製しているように見えます。それらを通常の m コード関数として再実装した場合、Matlab に追加されたマルチコア サポートにより、とにかく高速になる可能性はゼロではありません。

于 2009-05-12T11:19:52.807 に答える