Hướng dẫn matlab to python converter github - công cụ chuyển đổi matlab sang python github

Hướng dẫn matlab to python converter github - công cụ chuyển đổi matlab sang python github

matlab2python

Một tập lệnh Python để chuyển đổi các tệp hoặc dòng mã MATLAB thành Python. Dự án này là trong giai đoạn alpha. Việc thực hiện này phụ thuộc rất nhiều vào dự án Smop của Victor Leikehman. Việc thực hiện hiện tại bao quanh SMOP, với những khác biệt sau:

  • Nó cố gắng tạo ra mã không dựa vào libsmop, mà chỉ trên các mô -đun Python thông thường như numpy.
  • Nó sử dụng các phím tắt điển hình như np thay vì numpy.
  • Nó cố gắng làm lại mảng và vòng lặp, bắt đầu từ 0 thay vì 1.
  • Nó không sử dụng các lớp bên ngoài matlabarraycellarray từ libsmop
  • Hỗ trợ cơ bản cho các lớp MATLAB được thêm vào. Các thuộc tính được khai báo trong phần thân của lớp được khởi tạo trong hàm tạo.
  • Do hậu quả của tất cả những điều trên, mã kết quả là "kém an toàn" nhưng có thể gần hơn một chút với những gì người dùng sẽ viết.

Việc triển khai này được thực hiện đơn giản, vì về cơ bản nó sử dụng một tập lệnh phụ trợ khác so với bản được sử dụng bởi SMOP, ở đây được gọi là smop\backend_m2py.py. Một số thay thế chức năng đã được thêm trực tiếp ở đó. Hỗ trợ bổ sung cho các lớp, mô-đun nhập và các thay thế tinh chỉnh khác (hoặc hack ...) được thực hiện trong tệp ____10.

Cài đặt

Mã được viết bằng Python, bạn có thể truy cập nó như sau:

git clone https://github.com/ebranlard/matlab2python
cd matlab2python
python -m pip install --user -r requirements.txt

Cách sử dụng

Kịch bản chính ở gốc của kho lưu trữ có thể thực thi và có một vài cờ dòng lệnh (một số trong số chúng được lấy trực tiếp từ SMOP). Để chuyển đổi tệp

python matlab2python.py file.m -o file.py
1 thành
python matlab2python.py file.m -o file.py
2, chỉ cần nhập:

python matlab2python.py file.m -o file.py

Gói Python cũng có thể được sử dụng trực tiếp để thực hiện chuyển đổi các tệp hoặc dòng mã.

Tôi có nên sử dụng cái này không

Nếu bạn cần một tập lệnh thực hiện các chuyển đổi rõ ràng từ Matlab sang Python,

python matlab2python.py file.m -o file.py
3 hy vọng sẽ hoạt động cho bạn. Ví dụ, các chuyển đổi này là:

  • Cú pháp (
    python matlab2python.py file.m -o file.py
    4,
    python matlab2python.py file.m -o file.py
    5,
    python matlab2python.py file.m -o file.py
    6,
    python matlab2python.py file.m -o file.py
    7, không còn
    python matlab2python.py file.m -o file.py
    8)
  • vết lõm
  • ngoặc đơn cho dấu ngoặc
  • Thay thế các chức năng xây dựng đơn giản (
    python matlab2python.py file.m -o file.py
    9, libsmop0, libsmop1, libsmop2)
  • Thay thế đơn giản như libsmop3 thành libsmop4, hoặc libsmop5, thành libsmop6
  • Các chức năng linh tinh khác như libsmop7, libsmop8, libsmop9 được thay thế bằng con trăn của họ,
  • vân vân

Như đã đề cập ở trên, SMOP thực hiện một công việc tuyệt vời để sản xuất mã an toàn. Tuy nhiên, cả numpy0 và

python matlab2python.py file.m -o file.py
3 sẽ không tạo ra mã sẵn sàng sản xuất (trong một số trường hợp có thể). Hầu hết thời gian, người dùng sẽ phải thông qua mã và thực hiện điều chỉnh và một số viết lại. Trên thực tế,
python matlab2python.py file.m -o file.py
3 có thể sẽ tồi tệ hơn một chút so với SMOP trong việc tạo ra một mã hoạt động ra khỏi hộp. Nhưng cuối cùng, mã được tạo bởi
python matlab2python.py file.m -o file.py
3 nên yêu cầu ít tái cấu trúc hơn và giúp người dùng chuyển đổi. Như được đề cập bởi tác giả của SMOP, thật khó để không che giấu hương vị MATLAB khỏi mã được tạo ra và cũng khó chuyển đổi hoàn toàn mã mà không giới thiệu các lớp được bọc như vậy matlabarray. Việc thực hiện
python matlab2python.py file.m -o file.py
3 cố gắng để làm điều đó, với giá ít an toàn hơn.

Tôi đã viết tập lệnh trình bao bọc này cho nhu cầu của riêng tôi. Tôi đã sẵn sàng để chuyển đổi thủ công một loạt các tập lệnh MATLAB, nhưng tôi nghĩ rằng tôi có thể có một kịch bản để tự động hóa một số chuyển đổi và định dạng đơn giản. Tôi bắt đầu một triển khai nhanh chóng và bẩn thỉu trước khi khám phá numpy0. Cuối cùng, tôi đã hợp nhất sự suy yếu nhanh chóng và bẩn thỉu của mình với khung phân tích cú pháp mạnh mẽ hơn được sử dụng bởi SMOP. Hy vọng rằng điều này có thể hữu ích cho người khác! Nếu vậy, hãy thoải mái đóng góp.

Đóng góp

Bất kỳ đóng góp cho dự án này đều được chào đón! Nếu bạn thấy dự án này hữu ích, bạn cũng có thể mua cho tôi một ly cà phê (quyên góp một lượng nhỏ) với liên kết dưới đây:

Làm cách nào để chuyển đổi Matlab thành Python?

Để chuyển đổi MATLAB thành Python, một công cụ có tên SMOP (Matlab nhỏ và quãng tám thành trình biên dịch Python) được sử dụng.Công cụ này có khả năng hiểu mã MATLAB cơ bản và sau đó phân tích nó vào Python.Mặc dù luôn có những hạn chế đối với mọi công cụ, công cụ này hoạt động tốt nhất cho các mã cấp độ nhỏ.a tool named SMOP (Small Matlab and Octave to Python Compiler) is used. This tool is capable of understanding basic Matlab code and then parsing it to python. Although there are always limitations to every tool, this tool works best for small-level codes.

Tôi có thể chạy mã Matlab trong Python không?

Có hai cách tiếp cận để gọi mã MATLAB từ Python.Đầu tiên là sử dụng API MATLAB Engine cho Python, yêu cầu cài đặt MATLAB.Thứ hai là sử dụng SDK trình biên dịch MATLAB để biên dịch gói Python không yêu cầu người dùng cài đặt MATLAB.use the MATLAB Engine API for Python, which requires a MATLAB install. The second is to use MATLAB Compiler SDK to compile a Python package that does not require users to have a MATLAB install.

SMOP trong Python là gì?

Bản tóm tắt.SMOP là viết tắt của Trình biên dịch Matlab/Octave nhỏ.Nó được cho là để giúp những người cố gắng di cư từ Matlab sang Python.Mặc dù có sự tương đồng giữa hai ngôn ngữ, có đủ sự khác biệt để làm cho dịch thuật thủ công quá tốn thời gian.Small Matlab/Octave to Python compiler. It is supposed to help those who attempt migration from Matlab to Python. Despite the similarities between the two languages, there are enough differences to make manual translation too time consuming.