Frage

Ich versuche, ein Programm, das ursprünglich auf Matlab 6.5 auf eine neue Version (R2009a) getestet laufen Das Programm verwendet einige mex-Dateien, und ich erhalte die folgende Fehlermeldung beim Versuch, es zu laufen:

??? Ungültige MEX-Datei '/normalizedCut/common_files/sparsifyc.mexglx': normalizedCut / common_files / sparsifyc.mexglx: Symbol mxGetIr, Version libmx.INTERNAL nicht in der Datei libmx.so mit Link Zeitreferenz definiert.

(der Code, den ich zu tun bin versucht Normalized Schnitt von Shi & Malic, und hier gefunden werden kann: http://www.cis.upenn.edu/~jshi/software /files/NcutClustering_7.zip )

Wenn ich versuche, den Code auf dem gleichen System zu laufen, aber Matlab 2007a läuft es ok.

Gibt es ein Problem mit der Abwärtskompatibilität für 2009a? Gibt es irgendwo im System alle Flaggen ich ändern kann es funktionieren helfen?

Als ich es gegoogelt sah ich einige Hinweise auf die LD_LIBRARY_PATH env Variable, aber was genau es sollte hinzugefügt werden konnte ich nicht herausfinden.

Danke, Yair

War es hilfreich?

Lösung

Der Quellcode für die mex Funktionen erscheint in der „Bildsegmentierung mit normalisierten cuts“ Quelle auf dieser Seite zur Verfügung steht: http://www.cis.upenn.edu/~jshi/software/ (im specific_NcutImage_files Unterverzeichnis in der entpackten ZIP)

Andere Tipps

Es ist ziemlich für es gemeinsame Probleme bei der Ausführung mex Funktionen mit verschiedenen Versionen von Matlab zu sein. Die Fehler, Sie bekommen schauen, wie sie aufgrund API-Änderungen in Matlab sind (obwohl das mich ein wenig überrascht). Ich habe wegen Binärinkompatibilitäten die meisten Probleme hatte durch Änderungen in gcc induziert. Ich würde vorschlagen, Jiambo kontaktieren und fragt ihn, ob er eine neue Version bauen oder die Quelle freigeben.

Am schlimmsten Fall könnten Sie erneut die Durchführung dieser mex Funktionen versuchen. Der normalisierte Cut-Algorithmus ist ziemlich einfach in Matlab (siehe Shi und Malik Papier ). Durch den Namen der mex Funktionen, sehen sie aus wie sie sind meist zu duplizieren bestehenden Matlab-Funktionalität (Matrixmultiplikation, Matrix sparsification). Es gibt eine Nicht-Null Chance, dass, wenn Sie neu implementiert sie als reguläre m-Code-Funktionen sie schneller ohnehin aufgrund der Multi-Core-Unterstützung sein würden, die in Matlab hinzugefügt wurden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top