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, когда вы вызываете его. Синтаксис показывает позиционный, ключевое слово и выходные аргументы вызова функции.

мочите = 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

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

Примеры

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

Вызовите 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