matlab.engine.MatlabEngine

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

Описание

The 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 (для примера вы не можете использовать номера в качестве ключей).

Методы

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

The 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

Аргументы в Engine ключевых слов
АргументОписаниеТип 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 вернул его Python. Чтобы использовать его в 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