en cours d'exécution ancien fichier sur les nouvelles versions MEX matlab

StackOverflow https://stackoverflow.com/questions/852192

  •  21-08-2019
  •  | 
  •  

Question

Je suis en train d'exécuter un programme initialement testé sur Matlab 6.5 sur une nouvelle version (R2009a) Le programme utilise des fichiers Mex, et je reçois l'erreur suivante lorsque vous essayez de l'exécuter:

??? Non valide MEX-file '/normalizedCut/common_files/sparsifyc.mexglx': normalizedCut / common_files / sparsifyc.mexglx: symbole mxGetIr, la version libmx.INTERNAL ne sont pas définis dans le fichier libmx.so avec référence temporelle de lien.

(le code que je suis en train de tun est coupée par Shi Normalisé et Malic, et se trouve ici: http://www.cis.upenn.edu/~jshi/software /files/NcutClustering_7.zip )

Si je tente d'exécuter le code sur le même système, mais Matlab 2007a il fonctionne bien.

Y at-il un problème avec la compatibilité ascendante pour 2009a? Y at-il des drapeaux quelque part dans le système que je peux changer pour l'aider à travailler?

Quand je googlé j'ai vu quelques références à la variable d'env LD_LIBRARY_PATH, mais ce qui doit exactement être ajouté à ce que je ne pouvais pas savoir.

Merci, Yair

Était-ce utile?

La solution

Le code source de ces fonctions semble être Mex disponible dans la source « segmentation d'images avec des coupes normalisées » sur cette page: http://www.cis.upenn.edu/~jshi/software/ (dans le sous-répertoire specific_NcutImage_files dans le zip décompressé)

Autres conseils

Il est assez commun pour qu'il y ait des problèmes d'exécution des fonctions avec différentes versions Mex de Matlab. Les erreurs que vous obtenez l'impression qu'ils sont dus à des changements de l'API dans Matlab (mais qui me surprend un peu). J'ai eu le plus de problèmes en raison d'incompatibilités binaires induites par les changements de gcc. Je vous suggère de contacter Jiambo et lui demander s'il peut construire une nouvelle version ou libérer la source.

Le pire des cas, vous pouvez essayer de ré-implémenter ces fonctions Mex. L'algorithme de coupe normalisée est assez simple dans Matlab (voir le Shi et Malik papier ). Les noms des fonctions de Mex, ils ressemblent, ils sont la plupart du temps la duplication des fonctionnalités de Matlab existantes (multiplication de la matrice, la matrice sparsification). Il y a une chance non nulle que si vous les réimplémenté en fonctions régulières m-code qu'ils seraient de toute façon plus rapide en raison du soutien multicoeur qui a été ajouté à Matlab.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top