เครื่องมือในการแปลงรหัส MATLAB เป็น Python [ปิด]


150

ฉันมีรหัส MATLAB จำนวนมากจากวิทยานิพนธ์ MS ของฉันซึ่งตอนนี้ฉันต้องการแปลงเป็น Python (โดยใช้ numpy / scipy และ matplotlib) และแจกจ่ายเป็น open-source ฉันรู้ว่าความคล้ายคลึงกันระหว่างห้องสมุดทางวิทยาศาสตร์ของ MATLAB และ Python และการแปลงด้วยตนเองจะไม่เกินสองสัปดาห์ (หากฉันทำงานต่อทุกวันเป็นระยะเวลาหนึ่ง) ฉันสงสัยว่ามีเครื่องมือใด ๆ ที่สามารถทำการแปลงได้หรือไม่


7
ความเป็นไปได้อีกอย่างคือการปล่อยซอร์สโค้ดของคุณตามที่เป็นจริงและทดสอบใน Octave (www.gnu.org/software/octave) ซึ่งมีความสามารถในการทำงานของ matlab 99%
Oz123

2
@josliber: เราสามารถย้ายคำถามนี้ไปที่softwarerecs.stackexchange.comเพื่อให้สามารถเปิดใหม่ได้หรือไม่
Anderson Green

@andersongreen คำถามเก่าแก่เกินไปสำหรับการย้ายถิ่นฐาน
josliber

1
ฉันคิดว่าตอนนี้วิธีที่ดีที่สุดในการทำเช่นนี้คือการใช้เครื่องมือในตัวmatlab mcc
R3m

คำตอบ:


157

มีเครื่องมือหลายอย่างสำหรับการแปลง Matlab เป็นรหัส Python

สิ่งเดียวที่เห็นกิจกรรมล่าสุด (คอมมิชชันล่าสุดจากมิถุนายน 2018) คือS mall M atlab t o P ython คอมไพเลอร์ (พัฒนาที่นี่: SMOP @ chiselapp )

ตัวเลือกอื่น ๆ ได้แก่ :

  • LiberMate : แปลจาก Matlab เป็น Python และ SciPy (ต้องใช้ Python 2, อัปเดตล่าสุด 4 ปีที่แล้ว)
  • OMPC : Matlab เป็น Python (ล้าสมัยเล็กน้อย)

นอกจากนี้สำหรับผู้ที่สนใจอินเทอร์เฟซระหว่างสองภาษาและไม่ใช่การแปลง:

  • pymatlab: สื่อสารจาก Python โดยส่งข้อมูลไปยังพื้นที่ทำงานของ MATLAB ดำเนินการกับสคริปต์และดึงข้อมูลที่ได้กลับมา
  • Python-Matlab Wormholes : รองรับการโต้ตอบทั้งสองทิศทาง
  • Python-Matlab bridge : ใช้ Matlab จากภายใน Python เสนอ matlab_magic สำหรับ iPython เพื่อรันโค้ด matlab ปกติจากภายใน ipython
  • PyMat : เซสชันควบคุม Matlab จาก Python
  • pymat2: ความต่อเนื่องของ PyMat ที่ถูกทอดทิ้ง
  • mlabwrap, mlabwrap-purepy : ทำให้ Matlab ดูเหมือนห้องสมุด Python (ขึ้นอยู่กับ PyMat)
  • oct2py: รันคำสั่ง GNU Octave จากภายใน Python
  • pymex: ฝังหลามล่ามใน Matlab, นอกจากนี้ยังมีไฟล์แลกเปลี่ยน
  • matpy: เข้าถึง MATLAB ได้หลายวิธี: สร้างตัวแปร, เข้าถึงไฟล์. mat, เชื่อมต่อโดยตรงกับโปรแกรม MATLAB (ต้องติดตั้ง MATLAB)
  • MatPy : แพคเกจหลามสำหรับพีชคณิตเชิงเส้นเชิงตัวเลขและการพล็อตด้วยอินเทอร์เฟซเหมือน MatLab

Btw อาจเป็นประโยชน์ในการดูเคล็ดลับการย้ายข้อมูลอื่นที่นี่:

ในหมายเหตุอื่นถึงแม้ว่าฉันไม่ใช่fortranแฟนเลยสำหรับคนที่อาจพบว่ามีประโยชน์มี:


2
ใครบ้างมีความคิดเห็นเกี่ยวกับสิ่งที่ดีที่สุดหรือกรณีใดล้มเหลว?
Chogg

8
ฉันยังไม่ได้ทดสอบพวกเขา แต่อย่างใดดูเหมือนว่า smop มีความแตกต่างเพียงอย่างเดียวของการบำรุงรักษาอย่างแข็งขันโดยนักพัฒนาดั้งเดิมบน github ด้วยชุดทดสอบ
Andrew Wagner

อันไหนที่เร็วที่สุดในการเรียกฟังก์ชั่น MATLAB จากวิธีการสร้างส่วนต่อประสาน?
Viktor Tóth

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.