2012-03-23 117 views
95

Tôi có một bó mã MATLAB từ luận án MS của tôi mà bây giờ tôi muốn chuyển sang Python (sử dụng numpy/scipy và matplotlib) và phân phối dưới dạng nguồn mở. Tôi biết sự giống nhau giữa thư viện khoa học MATLAB và Python, và chuyển đổi chúng theo cách thủ công sẽ không nhiều hơn một hai tuần (miễn là tôi làm việc với nó mỗi ngày trong một thời gian). Tôi đã tự hỏi nếu đã có bất kỳ công cụ có sẵn mà có thể làm việc chuyển đổi.Một công cụ để chuyển đổi mã MATLAB sang Python

+7

khả năng khác là để phát hành mã nguồn của bạn như là, và thử nghiệm nó trong Octave (www.gnu.org/software/octave) trong đó có 99% matlab competability. – Oz123

+1

@Denis: phải là câu trả lời – endolith

+1

@josliber: Chúng tôi có thể chuyển câu hỏi này tới http://softwarerecs.stackexchange.com để có thể mở lại không? –

Trả lời

104

Có một số công cụ thay thế để chuyển đổi Matlab mã để mã Python (không kiểm tra chưa):

Ngoài ra, đối với những quan tâm trong một giao diện giữa hai ngôn ngữ và không chuyển đổi:

  • pymatlab: giao tiếp từ Python bằng cách gửi dữ liệu vào không gian làm việc MATLAB, hoạt động trên chúng bằng các tập lệnh và kéo trở lại dữ liệu kết quả
  • Python-Matlab wormholes: cả hai hướng tương tác được hỗ trợ
  • Python-Matlab bridge: sử dụng Matlab từ bên trong Python, cung cấp matlab_magic cho ipython, để thực thi mã matlab bình thường từ bên trong ipython
  • PyMat: Kiểm soát Matlab phiên từ Python
  • pymat2: sự tiếp nối của PyMat dường như bị bỏ rơi.
  • mlabwrap, mlabwrap-purepy: làm Matlab trông giống như Python thư viện (dựa trên PyMat)
  • oct2py: chạy octave lệnh từ bên trong Python
  • pymex: Nhúng các Interpreter Python trong Matlab, cũng trên File Exchange
  • matpy: Truy cập MATLAB theo nhiều cách khác nhau: tạo các biến, truy cập các tệp .mat, giao diện trực tiếp tới công cụ MATLAB (yêu cầu MATLAB được cài đặt).
  • MatPy: Python gói cho số đại số tuyến tính và âm mưu với một giao diện Matlab như

Btw có thể hữu ích để nhìn vào đây để lời khuyên di cư khác:

Trên một lưu ý khác, mặc dù tôi không phải là một người hâm mộ ở tất cả mọi người, mặc dù tôi không phải là một người thích hợp với số điện thoại

+2

Có ai có nhận xét về việc nào trong số này hoạt động tốt nhất hoặc trường hợp nào không thành công? – Chogg

+5

Tôi chưa thử nghiệm chúng, nhưng có vẻ như smop có sự phân biệt duy nhất được chủ động duy trì, bởi nhà phát triển ban đầu, trên github, với một bộ thử nghiệm. –

0

Tôi không biết về bất kỳ công cụ tự động, nhưng hướng dẫn chung có sẵn ở đây: http://www.scipy.org/NumPy_for_Matlab_Users

Nói chung tôi sẽ chỉ xem xét các tài liệu NumPy đó là rất tốt. Một số tên phương thức ánh xạ trực tiếp, mặc dù có sự khác biệt. Tôi không mất nhiều thời gian để chuyển từ Matlab sang Numpy khi tôi thực hiện bước nhảy vài năm trước.

10

OMPC, "Trình biên dịch Matlab-to-Python nguồn mở", được đề cập bởi @IoannisFilippidis trong his answer, - chưa sử dụng nó.

+4

Tôi đã thử nó, quá nhiều lệnh không xác định (sao chép từ MATLAB) –

Các vấn đề liên quan