Доступ к модулям Python из MATLAB - начало работы

Можно получить доступ ко всему стандартному Python® содержимое библиотеки из MATLAB®. Аналогично, можно использовать функциональность в сторонних или созданных пользователями модулях. Чтобы вызвать функциональность Python непосредственно из MATLAB, добавьте py. снабдите префиксом к имени функции Python, которую вы хотите вызвать.

  • Чтобы вызвать содержимое в библиотеке стандарта Python, добавьте py. перед именем функции Python или именем класса.

    py.list({'This','is a','list'}) % Call built-in function list
  • Чтобы вызвать содержимое в доступных модулях, добавьте py. перед именем модуля Python, сопровождаемым именем функции Python или именем класса.

    py.textwrap.wrap('This is a string') % Call wrap function in module textwrap

Вы не должны импортировать модули для того, чтобы использовать их. Однако можно импортировать имена Python в функцию MATLAB таким же образом, что можно импортировать содержимое в пакетах MATLAB. Для получения дополнительной информации смотрите Понимание, что Python и MATLAB импортируют Команды.

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

Изучение целей

Этот пример объясняет как:

  • Проверяйте версию Python на своем компьютере.

  • Создайте объект Python и вызовите метод на нем.

  • Отобразите справку для модулей Python.

  • Создайте специализировал Python list, tuple, и dict (словарь) типы

  • Вызовите метод на объекте Python с тем же именем как функция MATLAB.

  • Вызовите функциональность от своего собственного модуля Python.

  • Найдите примеры.

Проверьте настройку 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.

Доступ к модулям библиотеки стандарта Python в MATLAB

MATLAB взаимодействует с Интерпретатором Python на вашей машине, давание вас получает доступ ко всему стандартному содержимому библиотеки. Например, создайте list Python тип данных.

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 использование append Python функция.

res.append('Name4')
res
res = 

  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'}

Отобразите документацию Python в MATLAB

Можно отобразить текст справки для функций Python в MATLAB. Например:

py.help('list.append')
Help on method_descriptor in list:

list.append = append(...)
    L.append(object) -> None -- append object to end

Заполнение клавишей Tab при вводе py. не отображает доступную функциональность Python. Для получения дополнительной информации смотрите Справку для Функций Python.

Создайте список, кортеж и типы словаря

Эта таблица показывает операторы для создания list, tuple, и dict типы. Операторы слева запущены от Интерпретатора Python. Операторы справа являются выражениями MATLAB.

Python list[]

MATLAB py.list

>>> ['Robert', 'Mary', 'Joseph']>> py.list({'Robert','Mary','Joseph'})
>>> [[1,2],[3,4]]>> py.list({py.list([1,2]),py.list([3,4])})

Python tuple()

MATLAB py.tuple

>>> ('Robert', 19, 'Biology')>> py.tuple({'Robert',19,'Biology'})

Python dict{}

MATLAB py.dict

>>> {'Robert': 357, 'Joe': 391, 'Mary': 229}>> py.dict (pyargs (...
'Роберт', 357, 'Мэри', 229, 'Джо', 391))


Для получения информации о передающих аргументах ключевого слова смотрите pyargs.

Порядок приоритета методов и функций

Если класс Python задает метод с тем же именем, как метод конвертера MATLAB для Python вводит, MATLAB вызывает метод Python. Это означает, что вы не можете вызвать метод конвертера MATLAB на объекте того класса.

Например, если класс Python задает char метод, этот оператор вызывает метод Python.

char(obj)

Использовать MATLAB char функция, введите:

char(py.str(obj))

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

Можно использовать собственный код Python и сторонние модули в MATLAB. Содержимое должно быть на пути Python. Установка стороннего модуля помещает содержимое на путь Python. Если вы создаете свои собственные модули, вы ответственны за помещение их на пути.

Для примера смотрите Кола Юзр-Дефинеда Пайтона Модьюла.

Примеры Python

Например, код можно открыться в Live Editor MATLAB, искать Известные Примеры на странице Calling Python from MATLAB. Для получения информации о поиске примеров MATLAB смотрите Примеры кода MATLAB.

Для примера с помощью онлайнового набора данных смотрите это сообщение в блоге MathWorks.

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

Похожие темы