Можно вызвать функциональность из 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. префикс.