Можно вызвать функциональность из Python® библиотеки или выполняют операторы Python непосредственно из MATLAB®.
К библиотекам 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 из командной строки MATLAB, используйте pyrun
функция. С этой функцией можно запустить код, который передает типы MATLAB как вход и возвращает некоторых или все переменные назад к MATLAB. Например, предположите, что вы запускаете этот оператор в Интерпретаторе Python.
>>> l = ['A', 'new', 'list']
Чтобы запустить оператор из MATLAB, использовать pyrun
. Возвращать результат к переменной MATLAB myList
, добавьте "l"
как outputs
аргумент:
myList = pyrun("l = ['A', 'new', 'list']", "l");
Чтобы вызвать скрипт 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']
Когда вы используете 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.
префикс.