Pergunta

Eu estou tentando executar um programa originalmente testado em Matlab 6.5 em uma nova versão (R2009a) O programa usa alguns arquivos mex, e eu recebo o seguinte erro ao tentar executá-lo:

??? Inválida MEX-file '/normalizedCut/common_files/sparsifyc.mexglx': normalizedCut / common_files / sparsifyc.mexglx: Símbolo mxGetIr, versão libmx.INTERNAL não definido no arquivo libmx.so com referência de tempo link.

(o código que estou tentando tun é corte normalizada por Shi e málico, e pode ser encontrada aqui: http://www.cis.upenn.edu/~jshi/software /files/NcutClustering_7.zip )

Se eu tentar executar o código no mesmo sistema, mas Matlab 2007a ele é executado ok.

Existe algum problema com compatibilidade com versões anteriores para 2009a? Há algum bandeiras em algum lugar no sistema que eu posso mudar para ajudá-la funcionar?

Quando eu pesquisei eu vi algumas referências à variável env LD_LIBRARY_PATH, mas o que exatamente deve ser adicionado a ele que eu não poderia descobrir.

Obrigado, Yair

Foi útil?

Solução

O código fonte para essas funções mex parece estar disponível no "Segmentação de imagens com cortes normalizados" fonte desta página: http://www.cis.upenn.edu/~jshi/software/ (no subdiretório specific_NcutImage_files na .zip descompactado)

Outras dicas

É muito comum para que haja problemas para executar funções mex com diferentes versões do Matlab. Os erros que você está recebendo parecem que estão devido a mudanças na API em Matlab (embora que me surpreende um pouco). Eu tive mais problemas devido a incompatibilidades binários induzidas por mudanças no gcc. Eu sugiro entrar em contato com Jiambo e perguntando se ele pode construir uma nova versão ou liberar a fonte.

Na pior das hipóteses, você pode tentar re-execução dessas funções mex. O algoritmo de corte normalizada é bastante simples em Matlab (veja a Shi e Malik papel). Pelos nomes das funções mex, eles parecem que estão duplicando principalmente funcionalidade existente Matlab (multiplicação de matrizes, sparsification matriz). Há uma chance de não-zero que se re-implementado-los como funções m-código regulares eles estariam mais rápido de qualquer maneira devido ao apoio multicore que foi adicionado ao Matlab.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top