Непосредственно вызовите функциональность Python из MATLAB

Можно вызвать функциональность из Python® библиотеки или выполняют операторы Python непосредственно из MATLAB®.

Доступ к модулям Python

К библиотекам Python доступа добавьте py. снабдите префиксом к имени Python. Например:

py.list({'This','is a','list'})      % Call built-in function list
py.textwrap.wrap('This is a string') % Call wrap function in module textwrap

Для получения дополнительной информации смотрите доступ к Модулям Python из MATLAB - Начало работы.

Запустите код Python

Чтобы выполнить операторы Python в Интерпретаторе Python из командной строки MATLAB, используйте pyrun функция. С этой функцией можно запустить код, который передает типы MATLAB как вход и возвращает некоторых или все переменные назад к MATLAB. Например, предположите, что вы запускаете этот оператор в Интерпретаторе Python.

>>> l = ['A', 'new', 'list']

Чтобы запустить оператор из MATLAB, использовать pyrun. Возвращать результат к переменной MATLAB myList, добавьте "l" как outputs аргумент:

myList = pyrun("l = ['A', 'new', 'list']", "l");

Запустите скрипты Python

Чтобы вызвать скрипт Python из командной строки MATLAB, используйте pyrunfile функция. Вы передаете переменные данных MATLAB и возвращаемые переменные тот же путь как с pyrun. Например, создайте mklist.py файл с этими операторами:

# Python script file mklist.py: 
s = 'list'
L = ['A', 'new', s]

Запустите скрипт из MATLAB:

myListFile = pyrunfile("mklist.py", "L")
myListFile = 
  Python list with no properties.

    ['A', 'new', 'list']

Доступ к переменным Python

Когда вы используете py. префикс, MATLAB импортирует целый модуль и может получить доступ ко всем функциям и классам кода Python. Однако, когда вы выполняете код Python с помощью pyrun или pyrunfile функции, если вы хотите получить доступ к данным Python, необходимо явным образом возвратить объекты Python в MATLAB с помощью outvars аргумент.

Ограничения к pyrun и pyrunfile Функции

Классы Python задали использование pyrun или pyrunfile не может быть изменен, если вы возвращаете экземпляр класса к MATLAB. Если необходимо изменить определения классов, перезапустите сеанс интерпретатора:

terminate(pyenv)
pyenv("ExecutionMode","OutOfProcess")

В качестве альтернативы перезапустите MATLAB для "InProcess".

pyrun и pyrunfile функции не поддерживают классы с локальными переменными, которые инициализируются другими локальными переменными через методы. Для такого использования создайте модуль и получите доступ к нему с помощью py. префикс.

Смотрите также

|

Похожие темы