OMPC nhằm mục đích cho phép tái sử dụng cơ sở mã khổng lồ mở và miễn phí của MATLAB® trên nền tảng Python miễn phí và phát triển nhanh hơn. Chạy Python và MATLAB® trong một trình thông dịch duy nhất sẽ tránh được các sự cố khi chạy hai ứng dụng riêng biệt. Python thêm các thư viện lập trình mục đích chung vào cú pháp thuận tiện của ngôn ngữ máy tính kỹ thuật.
Phụ thuộc. Python, OMPC sử dụng PLY và Byteplay, nhưng chúng được phân phối cùng với mã nguồn.
Phụ thuộc Python. ctypes [dành cho phiên bản Python < 2. 5], cho OMPClib. numpy, scipy, matplotlib [pylab] và có thể cả những thứ khác
Các hệ điều hành được hỗ trợ. tất cả các nền tảng hỗ trợ Python, ctypes, numpy, scipy, matplotlib[pylab]
Cấp phép. OMPC và tất cả các ví dụ là một phần của trang web OMPC được cấp phép theo giấy phép kiểu BSD.
Làm thế nào nó hoạt động
OMPC cho phép chạy m-file của MATLAB® bằng trình thông dịch Python. OMPC đọc các tệp m và dịch chúng thành mã tương thích với Python. Giống như trong ví dụ sau
function [s,varargout] = mysize[x]
% kích thước với varargout
nout = max[nargout,1]-1;< . nout, vararout[k] = {s[k]};
s = size[x];
for k=1:nout, varargout[k] = {s[k]}; end
@mfunction["s", "varargout"]
def mysize[x].
"""kích thước với varargout"""
nout = max[nargout,1] - 1
s = size[ . không].
for k in m_[1:nout]:
vararout[k]. giá trị = mcell[s[k]]
OMPC không phải là trình thông dịch, nó cho phép Python thực hiện công việc. Điều này có nghĩa là nếu Python nhanh hơn thì OMPC cũng sẽ nhanh hơn. OMPC dịch các tệp m bảo tồn cấu trúc của các chương trình gốc càng nhiều càng tốt. Mặc dù OMPC đi kèm với một thư viện mô phỏng các tính năng của MATLAB's® mảng số không có gì có thể ngăn bạn chạy mã đã dịch theo cách bạn muốn. Điều này có nghĩa là bạn có thể chạy mã do OMPC tạo ra trên IronPython, Jython, PyPy hoặc bất kỳ thứ gì khác nếu bạn viết lớp số của riêng mình
Tất cả điều kỳ diệu được tạo ra bởi những người trang trí trăn và nội quan. Xem phần ví dụ để biết cách có thể mô phỏng các biến ẩn như nargin/nargout và các khía cạnh động khác của công cụ MATLAB® không có sẵn trong Python
Nhà phát triển, người thử nghiệm và yêu cầu tính năng
Nếu bạn muốn hiểu thêm về cách thức hoạt động của OMPC hoặc bạn muốn đóng góp theo bất kỳ cách nào cho sự phát triển, hãy xem các trang tài liệu dành cho nhà phát triển. Mọi hình thức đều được hoan nghênh đóng góp. Bất kỳ ai cũng có thể đóng góp bằng cách thử nghiệm. Sự phát triển được thúc đẩy bởi thử nghiệm và nhu cầu. Đối với thư viện chức năng hoặc hộp công cụ nếu bạn thích, dự án OMPC không sử dụng bất kỳ công cụ theo dõi lỗi tinh vi và có thể phức tạp nào. Lý do không sử dụng theo dõi lỗi phổ biến là sự phát triển dựa trên sự đóng góp của những người không phải là lập trình viên.
MATLAB® là nhãn hiệu đã đăng ký của The MathWorks, Inc.
"Python" và các logo Python là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Python Software Foundation.
Chọn một trang web để nhận nội dung đã dịch nếu có và xem các sự kiện và ưu đãi tại địa phương. Dựa trên vị trí của bạn, chúng tôi khuyên bạn nên chọn.
Bạn cũng có thể chọn một trang web từ danh sách sau
Làm thế nào để có được hiệu suất trang web tốt nhất
Chọn trang Trung Quốc [bằng tiếng Trung hoặc tiếng Anh] để có hiệu suất trang tốt nhất. Các trang web quốc gia khác của MathWorks không được tối ưu hóa cho các lượt truy cập từ vị trí của bạn
Tôi đã cài đặt SMOP qua pip và có vẻ như nó hoạt động tốt. Tôi có các tệp smop-script.py
và smop.exe
trong thư mục python thư mục
> smop -V
0.40
0 của tôiGiả sử tôi có một tệp matlab tên là
> smop -V
0.40
1 nằm ở > smop -V
0.40
0. Làm cách nào để sử dụng smop để dịch tệp đó?Tài liệu SMOP chỉ bao gồm một ví dụ về việc mở một tệp có trong thư mục
> smop -V
0.40
1 với một > smop -V
0.40
2 và tôi không có bất cứ thứ gì giống như vậy. Ngoài ra, trang github không cho biết liệu nó chỉ hoạt động với 2. 7 hoặc 3. hay bất cứ cái gìTôi đã hy vọng rằng gói này sẽ tăng tốc Matlab của tôi -> Python 3. 6 chuyển đổi, nhưng nếu hiện tại có dịch giả nào tốt hơn, vui lòng cho tôi biết điều đó/thay vào đó
ghi bàn. 2
Sử dụng smop không khác so với các công cụ dòng lệnh khác. Đầu tiên, có được các nguồn. Tải xuống, sao chép, tar, wget hoặc bất kỳ thứ gì phù hợp với bạn. Hãy gọi thư mục chứa setup. py thư mục gốc. Thay đổi thư mục thành cái đó. Bây giờ hãy cài đặt smop
> pip install .
Hãy xem nếu nó hoạt động
> smop -V
0.40
Vâng, đúng vậy
Hãy xem các tài liệu
> smop | more
Cuối cùng, bản dịch. Nếu bạn có một loạt tệp Matlab m, có tên là foo. m, thanh. tôi, bzz. m và bạn muốn dịch các tệp này sang python bạn gõ
> smop foo.m bar.m bzz.m
ghi bàn. 9
Tôi vừa thử sử dụng để chuyển đổi tệp matlab bằng SMOP và nó đã hoạt động. Tôi đã cài đặt phần mềm bằng pip trong môi trường Anaconda Prompt
pip install smop
Sau khi cài đặt, tôi có 0. 41 Phiên bản
Tôi đã sao chép tệp mà tôi muốn chuyển đổi vào thư mục mà tôi đã chạy mã pip trong môi trường Dấu nhắc Anaconda