mATLABEngine. Класс MatlabEngine

Пакет: mATLABEngine

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

Описание

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

Конструкция

Функция matlab.engine.start_matlab создает объект MatlabEngine каждый раз, когда она называется. Нет никакой потребности вызвать matlab.engine.MatlabEngine(), чтобы создать собственные объекты MatlabEngine.

Методы

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

ret = MatlabEngine.matlabfunc(*args,nargout=1,async=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

async

Отметьте, чтобы вызвать функцию MATLAB асинхронно

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

async=True

Исключения

MatlabExecutionError

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

RejectedExecutionError

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

SyntaxError

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

TypeError

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

Атрибуты

рабочая область

Словарь 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 workspace.

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

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

eng.workspace['mx'] = px

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

Получите pi от MATLAB workspace и скопируйте его в переменную Python.

import matlab.engine
eng = matlab.engine.start_matlab()
eng.eval('a = pi;',nargout=0)
mpi = eng.workspace['a']
print(mpi)
3.14159265359

Введенный в R2014b

Была ли эта тема полезной?