mATLABEngine. Класс MatlabEngine

Пакет: mATLABEngine

Использование объекта Python MATLAB как вычислительный механизм в сеансе Python

Описание

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

Конструкция

Функция matlab.engine.start_matlab создает объект MatlabEngine каждый раз, когда она называется. Нет никакой потребности вызвать matlab.engine.MatlabEngine(), чтобы создать собственные объекты 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. Однако для Версии 3.7 Python, 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

Выходные аргументы

'OutputType' ОписаниеНеобходимые аргументы ключевого слова

Переменная Python

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

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

tuple

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

nargout=n (где n > 1)

None

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

nargout=0

Объект FutureResult

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

background=True

Исключения

MatlabExecutionError

Вызову функции не удается выполниться

RejectedExecutionError

Движок MATLAB отключен

SyntaxError

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

TypeError

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

Атрибуты

workspace

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

Примеры

свернуть все

Вызовите функцию sqrt MATLAB из 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