exponenta event banner

matlab.engine. MatlabEngine

Объект Python, использующий MATLAB в качестве вычислительного механизма в сеансе Python

Описание

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

Создание

matlab.engine.start_matlab метод создает MatlabEngine объект при каждом вызове. Нет необходимости звонить matlab.engine.MatlabEngine() создать MatlabEngine собственных объектов.

Признаки

ПризнакОписание

workspace

Python словарь, содержащий ссылки на переменные MATLAB. Можно назначить данные и получить данные из переменной MATLAB через workspace. Имя каждой создаваемой переменной MATLAB становится ключом в workspace словарь. Ключи в workspace должны быть допустимыми идентификаторами MATLAB (например, нельзя использовать числа в качестве ключей).

Методы

Общедоступные методы

matlab::engine::MATLABEngine класс предоставляет эти методы.

Специализированные операторы и функции

Можно вызвать любую функцию MATLAB в качестве метода MatlabEngine объект. Механизм динамически вызывает функцию MATLAB при ее вызове. Синтаксис отображает позиционные, ключевые слова и выходные аргументы вызова функции.

ret = MatlabEngine.matlabfunc(*args,nargout=1,background=False,stdout=sys.stsdout,stderr=sys.stderr)

Заменить matlabfunc с именем любой функции MATLAB (например, isprime или sqrt). Заменить *args с входными аргументами для вызываемой функции MATLAB. Аргументы ключевого слова указывают:

  • Количество выходных аргументов, возвращаемых функцией

  • Вызывает ли подсистема функцию асинхронно

  • Где механизм посылает стандартный выходной сигнал и стандартную ошибку, исходящую от функции

Укажите аргументы ключевых слов только при указании значений, которые не являются значениями по умолчанию, показанными в синтаксисе.

Входные аргументы для функции MATLAB
АргументОписаниеТип Python

*args

Входные аргументы в функцию MATLAB, указанные как позиционные аргументы

Любые типы Python, которые движок может преобразовать в типы MATLAB

Аргументы ключевого слова для обработчика
АргументОписаниеТип Python

nargout

Количество выходных аргументов функции MATLAB

int

По умолчанию: 1

background

Флаг для асинхронного вызова функции MATLAB

background является псевдонимом для async. Однако для Python версии 3.7, async является ключевым словом и не может использоваться в качестве аргумента. Используйте background аргумент вместо async для всех поддерживаемых версий Python.

bool

По умолчанию: False

stdout

Стандартный выход

StringIO.StringIO объект (Python 2.7)
io.StringIO объект (Python 3.x)

По умолчанию: sys.stdout

stderr

Стандартная ошибка

StringIO.StringIO объект (Python 2.7)
io.StringIO объект (Python 3.x)

По умолчанию: sys.stderr

Выходные аргументы
Тип выводаОписаниеОбязательные аргументы ключевого слова

Переменная Python

Один выходной аргумент из функции MATLAB

Значения по умолчанию

tuple

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

nargout=n (где n > 1)

None

Нет выходного аргумента из функции MATLAB

nargout=0

FutureResult объект

Местозаполнитель для выходных аргументов асинхронного вызова функции MATLAB

background=True

Исключения

ИсключениеОписание
MatlabExecutionError

Вызов функции не выполнен

RejectedExecutionError

Работа двигателя MATLAB завершена

SyntaxError

Синтаксическая ошибка в вызове функции

TypeError

Тип данных входного или выходного аргумента не поддерживается

Примеры

развернуть все

Вызовите MATLAB sqrt от Python с помощью движка.

import matlab.engine
eng = matlab.engine.start_matlab()
ret = eng.sqrt(4.0)
print(ret)
2.0

Создайте массив в Python и поместите его в рабочую область MATLAB.

import matlab.engine
eng = matlab.engine.start_matlab()
px = eng.linspace(0.0,6.28,1000)

px является массивом MATLAB, но eng.linspace вернул его Питону. Чтобы использовать массив в MATLAB, поместите его в рабочую область MATLAB.

eng.workspace['mx'] = px

При добавлении записи в обработчик workspace также создается переменная MATLAB. Модуль преобразует данные в тип данных MATLAB.

Добраться pi из рабочей области MATLAB и скопируйте ее в переменную Python.

import matlab.engine
eng = matlab.engine.start_matlab()
eng.eval('a = pi;',nargout=0)
mpi = eng.workspace['a']
print(mpi)
3.14159265359
Представлен в R2014b