Nội dung chính
Ví dụ này cho thấy cách gọi tập lệnh MATLAB® để tính toán khu vực của một tam giác từ Python®.
Để gọi một tập lệnh hoặc hàm MATLAB, hãy đặt nó vào đường dẫn MATLAB của bạn. Đối với ví dụ này, hãy tạo tập lệnh MATLAB trong một tệp có tên
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]4 trong thư mục hiện tại của bạn.
b = 5; h = 3; a = 0.5*[b.* h]
Sau khi bạn lưu tệp, hãy bắt đầu Python và gọi tập lệnh.
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]
Chỉ định
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]5. Mặc dù tập lệnh in đầu ra, nhưng nó không trả về không có đối số đầu ra cho Python.
Chuyển đổi tập lệnh thành một hàm và gọi hàm từ động cơ. Để chỉnh sửa tệp, hãy mở trình chỉnh sửa MATLAB.
eng.edit['triarea',nargout=0]
Xóa ba tuyên bố. Sau đó thêm một khai báo chức năng và lưu tệp.
function a = triarea[b,h]
a = 0.5*[b.* h];
Gọi chức năng
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]6 mới từ động cơ.
ret = eng.triarea[1.0,5.0] print[ret]
Hàm
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]6 chỉ trả về một đối số đầu ra, do đó không cần phải chỉ định
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]8.
Xem thêm
import matlab.engine
eng = matlab.engine.start_matlab[]
eng.triarea[nargout=0]
9 | eng.edit['triarea',nargout=0]
0 |
eng.edit['triarea',nargout=0]
0
Chủ đề liên quan
- Gọi các chức năng MATLAB từ Python
Hi,
Đây không phải là vấn đề lớn. Mã Python trông giống như:
Nhập Matlab.Enginematlab.engine
Eng = matlab.engine.start_matlab []
eng.simple_script[nargout=0]
eng.quit[]
Tập lệnh MATLAB có lẽ là một dòng đã lưu Assimple_script.m: simple_script.m:
Đảm bảo rằng tập lệnh được lưu trong thư mục Matlab biết như một thư mục tìm kiếm.
Sau đó chạy tập lệnh Python của bạn và nhận câu trả lời:
Không cần thiết phải có chức năng trong tệp .M của mình, nhưng có thể. Xem thêm thông tin. here.
Màn hình MATLAB không hiển thị theo mặc định, vì vậy bạn sẽ rất vui nếu bạn làm theo điều này và thông tin được liên kết ...
Trân trọng
Stephan
Khởi động động cơ Matlab cho PythonMATLAB Engine for Python
Bắt đầu Python® tại dấu nhắc hệ điều hành.
Nhập gói
eng.edit['triarea',nargout=0]
1 vào phiên Python của bạn.Bắt đầu một quy trình MATLAB® mới bằng cách gọi
eng.edit['triarea',nargout=0]
2. Hàmeng.edit['triarea',nargout=0]
2 trả về một đối tượng Pythoneng.edit['triarea',nargout=0]
4 cho phép bạn truyền dữ liệu và gọi các chức năng được thực hiện bởi MATLAB.
import matlab.engine eng = matlab.engine.start_matlab[]
Khởi động động cơ với các tùy chọn khởi động
Khởi động động cơ và chuyển các tùy chọn dưới dạng chuỗi đối số đầu vào cho
eng.edit['triarea',nargout=0]5. Ví dụ, bắt đầu MATLAB với máy tính để bàn.
eng = matlab.engine.start_matlab["-desktop"]
Bạn có thể xác định nhiều tùy chọn khởi động với một chuỗi. Ví dụ: khởi động máy tính để bàn và đặt định dạng hiển thị số thành
eng.edit['triarea',nargout=0]6.
eng = matlab.engine.start_matlab["-desktop -r 'format short'"]
Bạn cũng có thể khởi động máy tính để bàn sau khi bạn khởi động động cơ.
import matlab.engine eng = matlab.engine.start_matlab[] eng.desktop[nargout=0]
Bắt đầu phiên bản động cơ MATLAB cụ thểMATLAB Engine Version
Để bắt đầu một phiên bản cụ thể của động cơ MATLAB, hãy đặt biến môi trường
eng.edit['triarea',nargout=0]7 thành vị trí của gói. Mã này giả định rằng bạn đã sử dụng thiết lập được hiển thị trong phần trước. Để đặt
eng.edit['triarea',nargout=0]7 trên Windows để gọi MATLAB R2019B, hãy loại:
sys.path.append["c:\work\matlab19bPy36"]
Trên Linux® hoặc MacOS:macOS:
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]0
Để kiểm tra phiên bản nào của MATLAB đã được nhập, trong loại Python:
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]1
Python có thể sử dụng tên thư mục khác nhau để cài đặt. Ví dụ: Python có thể tạo một thư mục con
eng.edit['triarea',nargout=0]9 trước khi cài đặt động cơ MATLAB. Xác minh thư mục trên hệ thống của bạn để sử dụng với lệnh
function a = triarea[b,h]
a = 0.5*[b.* h];
0.Khởi động động cơ không đồng bộ
Khởi động động cơ không đồng bộ. Trong khi Matlab bắt đầu, bạn có thể nhập các lệnh tại dòng lệnh Python.
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]2
Tạo phiên bản MATLAB để bạn có thể thực hiện các tính toán trong MATLAB.
Chạy nhiều động cơ
Bắt đầu từng động cơ riêng biệt. Mỗi động cơ bắt đầu và giao tiếp với quy trình MATLAB của riêng mình.
import matlab.engine eng = matlab.engine.start_matlab[] eng.triarea[nargout=0]3
Dừng động cơ
Gọi chức năng
function a = triarea[b,h]
a = 0.5*[b.* h];
1 hoặc function a = triarea[b,h]
a = 0.5*[b.* h];
2.Nếu bạn thoát Python bằng một động cơ vẫn đang chạy, thì Python sẽ tự động dừng động cơ và quy trình MATLAB của nó.
Xem thêm
eng.edit['triarea',nargout=0]
5
Chủ đề liên quan
- Chỉ định các tùy chọn khởi động
- Tùy chọn khởi động thường được sử dụng
- Gọi các chức năng MATLAB từ Python