Hướng dẫn can i use matlab functions in python? - tôi có thể sử dụng các hàm matlab trong python không?

Nội dung chính

Viết các chương trình Python® hoạt động với MATLAB®

Chức năng

mở rộng tất cả

Chức năng Python Functions

Chức năng MATLAB Functions

Chủ đề

Cài đặt

  • Yêu cầu hệ thống cho API MATLAB Engine cho Python những gì bạn cần viết và xây dựng các ứng dụng động cơ MATLAB cho Python.
    What you need to write and build MATLAB engine applications for Python.
  • Cài đặt API MATLAB Engine cho Python

    Để khởi động MATLAB Engine trong phiên Python, hãy cài đặt API động cơ dưới dạng gói Python.

    • Tập lệnh thiết lập Python để cài đặt API MATLAB Engine
    • Cài đặt API MATLAB Engine cho Python ở các vị trí Nondefault

Bắt đầu

  • Bắt đầu với API MATLAB Engine cho Python API MATLAB Engine cho Python cung cấp gói Python có tên matlab cho phép bạn gọi các chức năng MATLAB từ Python.
    The MATLAB Engine API for Python provides a Python package named matlab that enables you to call MATLAB functions from Python.
  • Bắt đầu và dừng MATLAB Engine cho các tùy chọn Python để khởi động động cơ MATLAB cho Python.
    Options for starting the MATLAB Engine for Python.
  • Gọi các chức năng MATLAB từ Python Cách trả về một đối số đầu ra từ hàm MATLAB. Cách đọc nhiều đầu ra từ một hàm. Phải làm gì khi hàm MATLAB không trả về đối số đầu ra.
    How to return an output argument from a MATLAB function. How to read multiple outputs from a function. What to do when the MATLAB function does not return an output argument.
  • Nhận trợ giúp cho các chức năng MATLAB từ Python từ Python, bạn có thể truy cập tài liệu hỗ trợ cho tất cả các chức năng MATLAB.
    From Python, you can access supporting documentation for all MATLAB functions.

Trao đổi dữ liệu và lập bản đồ

  • Sử dụng các mảng MATLAB trong Python Ví dụ này cho thấy cách tạo một mảng MATLAB trong Python và chuyển nó dưới dạng đối số đầu vào cho hàm MATLAB sqrt.
    This example shows how to create a MATLAB array in Python and pass it as the input argument to the MATLAB sqrt function.
  • Các mảng MATLAB dưới dạng các biến python Mô -đun python matlab cung cấp các lớp mảng để biểu thị các mảng của các loại số MATLAB dưới dạng các biến python để có thể truyền các mảng MATLAB giữa Python và Matlab.
    The matlab Python module provides array classes to represent arrays of MATLAB numeric types as Python variables so that MATLAB arrays can be passed between Python and MATLAB.
  • Chuyển dữ liệu cho MATLAB từ Python Khi bạn truyền dữ liệu Python làm đối số đầu vào cho các hàm MATLAB, công cụ MATLAB cho Python chuyển đổi dữ liệu thành các loại dữ liệu MATLAB tương đương.
    When you pass Python data as input arguments to MATLAB functions, the MATLAB Engine for Python converts the data into equivalent MATLAB data types.
  • Xử lý dữ liệu được trả về từ MATLAB đến Python Khi các hàm MATLAB trả về các đối số đầu ra, API động cơ MATLAB cho Python chuyển đổi dữ liệu thành các loại dữ liệu Python tương đương.
    When MATLAB functions return output arguments, the MATLAB Engine API for Python converts the data into equivalent Python data types.
  • Sử dụng các đối tượng xử lý MATLAB trong Python Ví dụ này cho thấy cách tạo một đối tượng từ lớp xử lý MATLAB và gọi các phương thức của nó trong Python.
    This example shows how to create an object from a MATLAB handle class and call its methods in Python.
  • Các loại số mặc định trong MATLAB và Python MATLAB lưu trữ tất cả các giá trị số dưới dạng số điểm nổi độ chính xác kép theo mặc định.
    MATLAB stores all numeric values as double-precision floating point numbers by default.

Gọi các chức năng MATLAB

  • Gọi các tập lệnh và chức năng của người dùng từ Python 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.
    This example shows how to call a MATLAB script to compute the area of a triangle from Python.
  • Sắp xếp và âm mưu dữ liệu MATLAB từ Python Ví dụ này cho thấy cách sắp xếp dữ liệu về bệnh nhân vào danh sách người hút thuốc và người không hút thuốc trong Python và âm mưu đọc huyết áp cho bệnh nhân mắc MATLAB.
    This example shows how to sort data about patients into lists of smokers and nonsmokers in Python and plot blood pressure readings for the patients with MATLAB.
  • Gọi các chức năng MATLAB không đồng bộ từ Python Ví dụ này cho thấy cách gọi hàm MATLAB sqrt không đồng bộ từ Python và lấy lại căn bậc hai sau.
    This example shows how to call the MATLAB sqrt function asynchronously from Python and retrieve the square root later.
  • Chuyển hướng đầu ra tiêu chuẩn và lỗi đến Python Ví dụ này cho thấy cách chuyển hướng đầu ra tiêu chuẩn và lỗi tiêu chuẩn từ hàm MATLAB sang các đối tượng Python StringIO.
    This example shows how to redirect standard output and standard error from a MATLAB function to Python StringIO objects.

Xử lý sự cố

Trong video này, bạn sẽ học cách gọi mã MATLAB từ Python.

Để làm điều này, chúng tôi sẽ sử dụng một ví dụ phân tích tình cảm. Giả sử một người nói rằng đó là buổi hòa nhạc hay nhất mà họ từng tham dự. Một thuật toán phân tích tình cảm sẽ xem xét văn bản này và xuất hiện những gì nó nghĩ là ý định - hoặc tình cảm - của người đó. Trong trường hợp này, nó nên dự đoán rằng đây là một tuyên bố tích cực. Mặt khác, nếu người đó nói rằng họ bỏ kem trên sàn và họ buồn, thì thuật toán sẽ dự đoán một tình cảm tiêu cực.

Chương trình phân tích tình cảm có thể trông như thế này. Chúng tôi nghe một nguồn âm thanh như micrô, phát hiện văn bản từ tín hiệu âm thanh và sau đó phân loại văn bản bằng mô hình phân tích tình cảm của chúng tôi. Giả sử tôi đang thực hiện tất cả sự phát triển của mình trong Python, nhưng đồng nghiệp của tôi đã có mã MATLAB để thực hiện phân tích tình cảm trên văn bản. Thay vì viết lại mã hoặc tìm một giải pháp mới, tôi vẫn muốn sử dụng mã MATLAB để phân tích tình cảm và thực hiện phần còn lại của công việc của tôi trong Python.

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.

Trước tiên, hãy xem mã MATLAB của chúng tôi. Đây là một tập lệnh kiểm tra đơn giản trong đó tôi có thể viết một câu và chuyển nó vào chức năng phân tích tình cảm của tôi. Ý tưởng là gọi chức năng này từ phần còn lại của mã của chúng tôi được viết bằng Python. Như bạn có thể thấy, tình cảm dự đoán là trung tính, có vẻ chính xác. Nếu bạn đang tự hỏi những gì trong chức năng này, tôi đang sử dụng thuật toán phân tích tình cảm tích hợp được gọi là Vader từ hộp công cụ phân tích văn bản.

Bây giờ, hãy để Lừa đi đến Python. Tôi có một mô -đun sử dụng gói nhận thức lời nói và đặc biệt là phần mềm Pocketsphinx từ Đại học Carnegie Mellon, để nhận ra văn bản từ bài phát biểu. Trong gói này, đồng nghiệp của tôi đã cung cấp một chức năng của bài phát biểu trên mạng. Điều này lắng nghe một thiết bị âm thanh, chẳng hạn như micrô và trả về văn bản được phát hiện và cờ Boolean cho biết liệu phát hiện có thành công hay không.

Dưới đây là một cuốn sổ hiển thị quy trình bằng API MATLAB Engine cho Python. Hãy nhớ lại rằng phương pháp này yêu cầu người dùng phải cài đặt MATLAB được cấp phép trên máy của họ.

Trước tiên tôi sẽ nhập các mô -đun nhận dạng giọng nói và MATLAB.

Sau đó, tôi sẽ bắt đầu một quy trình MATLAB mới trả về một đối tượng để giao tiếp với quy trình này.

Hãy để sử dụng chức năng phát biểu tích hợp của các bài phát biểu trên mạng trong mô-đun của chúng tôi để nghe micrô của tôi và hiển thị văn bản được phát hiện. Ví dụ, tôi đã đến nhà hàng yêu thích của mình và có một bữa ăn ngon.

Bây giờ chúng tôi có văn bản được phát hiện, đã đến lúc gọi mã MATLAB. Với dòng mã này, tôi đang hướng dẫn MATLAB gọi chức năng của Sent Sentanalysysisvader. Đầu vào của tôi là văn bản được phát hiện và số lượng đối số đầu ra tôi muốn gán - trong trường hợp này là hai. Như bạn có thể thấy từ các đầu ra in, tình cảm dự đoán là tích cực.

Bây giờ chúng tôi đã hoàn thành việc chạy mã MATLAB, hãy để tắt phiên.

Hãy cùng khám phá cách tiếp cận thứ hai là biên dịch gói Python từ mã MATLAB của chúng tôi. Để làm điều này, tôi sẽ truy cập tab Ứng dụng trong MATLAB và mở ứng dụng trình biên dịch thư viện. Tôi sẽ chọn một loại đầu ra của gói Python Python và sau đó thêm chức năng của tôi Sententanalysysisvader để xuất khẩu.

Bạn có thể điền vào phần còn lại của cài đặt với thông tin và tài liệu hữu ích, nhưng tôi sẽ nhảy về phía trước phần mẫu của các mẫu. Đây là nơi bạn có thể cung cấp mã mẫu gọi các chức năng đã xuất của bạn và ứng dụng trình biên dịch thư viện sẽ tự động tạo các mẫu Python tương đương để chỉ cho bạn cách gọi gói. Hãy để thêm tập lệnh kiểm tra của chúng tôi từ trước đó.

Bây giờ, chúng tôi có thể chọn gói gói trực tuyến để tạo thành phần độc lập của chúng tôi. Khi điều này được thực hiện, tôi có thể xem thư mục đầu ra và trong thư mục mẫu của bạn, bạn có thể thấy python tương đương với tập lệnh kiểm tra MATLAB mà tôi đã cung cấp.

Quay trở lại Python, đây là cuốn sổ tay của tôi hiển thị cách tiếp cận gói được biên dịch. Người dùng có thể chạy các gói được biên dịch này với thời gian chạy MATLAB, bạn có thể chia sẻ trực tiếp với người dùng của mình hoặc họ có thể tải xuống từ trang web MathWorks.

Lưu ý rằng, trước khi chạy mã này, cả gói được biên dịch và thời gian chạy MATLAB cần được cài đặt. Vui lòng tham khảo tài liệu để biết các bước về cách thực hiện việc này.

Trước tiên tôi sẽ nhập mô -đun nhận dạng giọng nói và gói chúng tôi vừa tạo.

Sau đó, tôi sẽ gọi chức năng khởi tạo trên mạng của gói được biên dịch để bắt đầu thời gian chạy MATLAB.

Hãy để sử dụng chức năng phát biểu tích hợp của các bài phát biểu trên mạng trong mô-đun của chúng tôi để nghe micrô của tôi và hiển thị văn bản được phát hiện. Ví dụ, tôi muốn đi ra ngoài nhưng thời tiết thật kinh khủng.

Bây giờ chúng ta đã có văn bản được phát hiện, chúng ta có thể gọi chức năng SETIMANTANALYSYSCADER. Đầu vào của tôi là văn bản được phát hiện và số lượng đối số đầu ra tôi muốn gán - trong trường hợp này là hai. Như bạn có thể thấy từ các đầu ra in, tình cảm dự đoán là tiêu cực.

Và cuối cùng, hãy để chấm dứt thời gian chạy MATLAB.

Điều đó kết thúc ví dụ của chúng tôi. Tóm lại, hãy để nói về lý do tại sao bạn muốn gọi Matlab từ Python. Quy trình làm việc mà chúng tôi đã thể hiện phù hợp nếu bạn đã làm việc ở Python và muốn sử dụng Matlab để giải quyết một phần của vấn đề. Điều này có thể là bạn có mã MATLAB hiện tại mà bạn muốn sử dụng lại hoặc bạn cần truy cập chức năng chỉ có trong MATLAB và các hộp công cụ và tiện ích bổ sung khác nhau. Ngoài ra, bạn có thể sử dụng SDK trình biên dịch MATLAB để biên dịch các gói Python có thể được chia sẻ với người dùng chưa cài đặt MATLAB.

Để tìm hiểu thêm, hãy kiểm tra các tài nguyên dưới đây. Ngoài ra, hãy đảm bảo xem video khác của chúng tôi về cách gọi Python từ Matlab.

Tìm hiểu thêm

Chúng ta có thể chuyển đổi mã MATLAB thành Python không?

Để 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.

Làm thế nào để Matlab tích hợp với Python?

Để tích hợp gói Trình biên dịch MATLAB® SDK ™ Python®:..
Khi tham khảo ý kiến của Lập trình viên MATLAB, thu thập các chữ ký chức năng MATLAB bao gồm các dịch vụ trong ứng dụng ..
Cài đặt và nhập gói Python đã biên dịch.....
Viết mã Python để khởi tạo thời gian chạy MATLAB và tải mã MATLAB ..

Matlab có khó hơn Python không?

MATLAB có khả năng tính toán toán học rất mạnh, Python rất khó thực hiện.Python không có hỗ trợ ma trận, nhưng thư viện Numpy có thể đạt được.MATLAB đặc biệt tốt trong việc xử lý tín hiệu, xử lý hình ảnh, trong đó Python không mạnh và hiệu suất cũng tồi tệ hơn nhiều.. Python has no matrix support, but the NumPy library can be achieved. MATLAB is particularly good at signal processing, image processing, in which Python is not strong, and performance is also much worse.