Из MATLAB ® можно получить доступ ко всему стандартному содержимому библиотеки Python ®. Чтобы вызвать функцию Python непосредственно из MATLAB, добавьте py. префикс имени функции Python, которую требуется вызвать. Импорт модулей не требуется.
В этом учебном пособии объясняется, как:
Проверьте версию Python на компьютере.
Создайте объект Python и вызовите для него метод.
Отображение справки по модулям Python.
Создание специализированного Python list, tuple, и dict (словарь) типы
Вызовите метод для объекта Python, имя которого совпадает с именем функции MATLAB.
Функции вызова из собственного модуля Python.
Найдите примеры.
Для использования Python в MATLAB на компьютере должна быть установлена поддерживаемая версия Python. Чтобы убедиться в наличии поддерживаемой версии, введите:
pyenv
ans =
PythonEnvironment with properties:
Version: "3.8"
Executable: "C:\Users\aname\AppData\Local\Programs\Python\Python38\pythonw.exe"
Library: "C:\Users\aname\AppData\Local\Programs\Python\Python38\python38.dll"
Home: "C:\Users\aname\AppData\Local\Programs\Python\Python38"
Status: NotLoaded
ExecutionMode: OutOfProcessЕсли значение Version пустое свойство, то у вас нет поддерживаемой версии. Дополнительные сведения об установке Python см. в разделе Настройка системы для использования Python.
MATLAB взаимодействует с интерпретатором Python на компьютере, предоставляя доступ ко всему стандартному библиотечному содержимому. Например, создайте Python list тип данных.
res = py.list({'Name1','Name2','Name3'})res =
Python list with no properties.
['Name1', 'Name2', 'Name3']
MATLAB распознает объекты Python и автоматически преобразует массив ячеек MATLAB в соответствующий тип Python.
Для объекта можно вызвать методы Python. Отображение доступных методов для list объекты, тип methods(py.list). Например, обновить список res использование Python append функция.
res.append('Name4')
resres =
Python list with no properties.
['Name1', 'Name2', 'Name3', 'Name4']Чтобы преобразовать list переменная к переменной MATLAB, вызов cell в списке и char по элементам списка.
mylist = cellfun(@char,cell(res),'UniformOutput',false)mylist =
1×4 cell array
{'Name1'} {'Name2'} {'Name3'} {'Name4'}В MATLAB можно просмотреть текст справки для функций Python. Например:
py.help('list.append')Help on method_descriptor in list:
list.append = append(...)
L.append(object) -> None -- append object to endЗаполнение вкладки при вводе py. не отображает доступные функциональные возможности Python. Дополнительные сведения см. в справке по функциям Python.
В этой таблице представлены команды для создания list, tuple, и dict типы. Команды слева выполняются из интерпретатора Python. Справа расположены команды MATLAB.
Питон | MATLAB |
|---|---|
>>> ['Robert', 'Mary', 'Joseph'] | >> py.list({'Robert','Mary','Joseph'}) |
>>> [[1,2],[3,4]] | >> py.list({py.list([1,2]),py.list([3,4])}) |
Питон | MATLAB |
|---|---|
>>> ('Robert', 19, 'Biology') | >> py.tuple({'Robert',19,'Biology'}) |
Питон | MATLAB |
|---|---|
>>> {'Robert': 357, 'Joe': 391, 'Mary': 229} | >> py.dict(pyargs(...Сведения о передаче аргументов ключевых слов см. в разделе pyargs. |
Если класс Python определяет метод с тем же именем, что и метод преобразования MATLAB для типов Python, MATLAB вызывает метод Python. Это означает, что невозможно вызвать метод MATLAB converter для объекта этого класса.
Например, если класс Python определяет char этот оператор вызывает метод Python.
char(obj)
Использование MATLAB char функция, тип:
char(py.str(obj))
В MATLAB можно использовать собственный код Python и модули сторонних производителей. Содержимое должно находиться в пути Python. Установка модуля стороннего производителя помещает содержимое на путь Python. Если вы создаете собственные модули, вы несете ответственность за их размещение на пути.
Пример см. в разделе Вызов определяемого пользователем модуля Python.
Например, код, который можно открыть в интерактивном редакторе MATLAB, можно найти в разделе Примеры на странице Библиотеки Python на MATLAB. Сведения о поиске примеров MATLAB см. в разделе Примеры кода MATLAB.
Пример использования онлайн-набора данных см. в этой записи блога MathWorks.