Uma ferramenta para converter código MATLAB em Python [fechado]

150

Eu tenho um monte de código MATLAB da minha tese de MS que agora quero converter para Python (usando numpy / scipy e matplotlib) e distribuir como código-fonte aberto. Conheço a semelhança entre as bibliotecas científicas MATLAB e Python, e a conversão delas manualmente não passará de quinze dias (desde que eu trabalhe nesse sentido todos os dias por algum tempo). Fiquei me perguntando se já havia alguma ferramenta disponível que possa fazer a conversão.

Jack_of_All_Trades
fonte
7
outra possibilidade é liberar seu código-fonte como está e testá-lo no Octave (www.gnu.org/software/octave), que possui 99% de competência no matlab.
Oz123
2
@josliber: Podemos mover esta pergunta para softwarerecs.stackexchange.com para que possa ser reaberta?
Anderson Green
@andersongreen a questão é muito velho para a migração
josliber
1
Acho que agora a melhor maneira de fazer isso é usar o Matlab built-in ferramenta de MCC
R3m

Respostas:

157

Existem várias ferramentas para converter o código Matlab em Python.

O único que viu atividade recente (último commit a partir de junho 2018) é S shopping M Atlab t o P ython compilador (também desenvolvido aqui: SMOP @ chiselapp ).

Outras opções incluem:

  • LiberMate : traduza do Matlab para Python e SciPy (Requer Python 2, última atualização há 4 anos).
  • OMPC : Matlab para Python (um pouco desatualizado).

Além disso, para aqueles interessados ​​em uma interface entre os dois idiomas e não na conversão:

  • pymatlab: comunique-se a partir do Python enviando dados para o espaço de trabalho do MATLAB, operando neles com scripts e retirando os dados resultantes.
  • Buracos de minhoca Python-Matlab : ambas as direções de interação são suportadas.
  • Ponte Python-Matlab : use o Matlab de dentro do Python, oferece matlab_magic para o iPython, para executar o código normal do matlab de dentro do ipython.
  • PyMat : controle a sessão do Matlab a partir do Python.
  • pymat2: continuação do PyMat aparentemente abandonado.
  • mlabwrap, mlabwrap-purepy : faça o Matlab se parecer com a biblioteca Python (com base no PyMat).
  • oct2py: execute comandos do GNU Octave no Python.
  • pymex: Incorpora o intérprete Python no Matlab, também no File Exchange .
  • matpy: Acesse o MATLAB de várias maneiras: crie variáveis, acesse arquivos .mat, interface direta com o mecanismo MATLAB (requer a instalação do MATLAB).
  • MatPy : pacote Python para álgebra linear numérica e plotagem com uma interface semelhante ao MatLab.

Talvez seja útil procurar aqui outras dicas de migração:

Em uma nota diferente, embora eu não seja um fortranfã, para pessoas que podem achar útil, existe:

Ioannis Filippidis
fonte
2
Alguém tem um comentário sobre qual desses funciona melhor ou quais casos falham?
Chogg
8
Também não os testei, mas parece que o smop tem a única distinção de ser mantido ativamente, pelo desenvolvedor original, no github, com uma suíte de testes.
Andrew Wagner
qual é o mais rápido a chamar funções matlab fora dos métodos que estabelecem uma interface?
Viktor Tóth