Alat untuk mengonversi kode MATLAB ke Python [ditutup]

150

Saya memiliki banyak kode MATLAB dari tesis MS saya yang sekarang ingin saya konversi ke Python (menggunakan numpy / scipy dan matplotlib) dan distribusikan sebagai open-source. Saya tahu kesamaan antara perpustakaan ilmiah MATLAB dan Python, dan mengonversinya secara manual tidak lebih dari dua minggu (asalkan saya bekerja ke sana setiap hari selama beberapa waktu). Saya bertanya-tanya apakah sudah ada alat yang tersedia yang dapat melakukan konversi.

Orang yg serba tahu
sumber
7
kemungkinan lain adalah merilis kode sumber Anda apa adanya, dan mengujinya dalam Oktaf (www.gnu.org/software/octave) yang memiliki 99% kemampuan matlab.
Oz123
2
@josliber: Bisakah kita memindahkan pertanyaan ini ke softwarerecs.stackexchange.com sehingga dapat dibuka kembali?
Anderson Green
@andersongreen pertanyaannya terlalu tua untuk migrasi
josliber
1
Saya pikir sekarang cara terbaik untuk melakukan ini adalah dengan menggunakan alat matlab built-in mcc
R3m

Jawaban:

157

Ada beberapa alat untuk mengubah kode Matlab ke Python.

Satu-satunya yang terlihat aktivitas terakhir (komit terakhir dari Juni 2018) adalah S mal M atlab t o P compiler ython (juga dikembangkan di sini: SMOP @ chiselapp ).

Pilihan lain termasuk:

  • LiberMate : terjemahkan dari Matlab ke Python dan SciPy (Membutuhkan Python 2, pembaruan terakhir 4 tahun lalu).
  • OMPC : Matlab ke Python (agak ketinggalan jaman).

Juga, bagi mereka yang tertarik dengan antarmuka antara kedua bahasa dan bukan konversi:

  • pymatlab: berkomunikasi dari Python dengan mengirimkan data ke ruang kerja MATLAB, mengoperasikannya dengan skrip dan menarik kembali data yang dihasilkan.
  • Lubang cacing Python-Matlab : kedua arah interaksi didukung.
  • Python-Matlab bridge : gunakan Matlab dari dalam Python, menawarkan matlab_magic untuk iPython, untuk mengeksekusi kode matlab normal dari dalam ipython.
  • PyMat : Kontrol sesi Matlab dari Python.
  • pymat2: kelanjutan dari PyMat yang tampaknya ditinggalkan.
  • mlabwrap, mlabwrap-purepy : membuat Matlab terlihat seperti pustaka Python (berdasarkan PyMat).
  • oct2py: jalankan perintah GNU Octave dari dalam Python.
  • pymex: Cantumkan Python Interpreter di Matlab, juga di File Exchange .
  • matpy: Akses MATLAB dengan berbagai cara: buat variabel, akses file .mat, antarmuka langsung ke mesin MATLAB (harus diinstal MATLAB).
  • MatPy : Paket Python untuk aljabar linier numerik dan merencanakan dengan antarmuka seperti MatLab.

Btw mungkin membantu untuk mencari di sini untuk tips migrasi lainnya:

Pada nada yang berbeda, meskipun saya bukan fortranpenggemar sama sekali, bagi orang-orang yang mungkin merasa berguna ada:

Ioannis Filippidis
sumber
2
Adakah yang punya komentar tentang mana yang paling berhasil atau mana yang gagal?
Chogg
8
Saya belum mengujinya juga, tetapi sepertinya smop memiliki satu-satunya perbedaan yang dipelihara secara aktif, oleh pengembang asli, di github, dengan test suite.
Andrew Wagner
mana yang tercepat untuk memanggil fungsi matlab dari metode membangun antarmuka?
Viktor Tóth