matlab::engine::MATLABEngine

Оцените функции MATLAB из программы C++

Описание

matlab::engine::MATLABEngine класс использует процесс MATLAB® в качестве вычислительного механизма для C++. Этот класс обеспечивает интерфейс между языком C++ и MATLAB, позволяя вам оценить функции MATLAB и выражения из программ C++.

Информация о классе

Пространство имен:

matlab::engine
Включение:MatlabEngine.hpp

Методы фабрики

matlab::engine::MATLABEngine класс предоставляет методы, чтобы запустить MATLAB и соединиться с разделяемым сеансом работы с MATLAB синхронно или асинхронно.

Неподдерживаемые опции запуска

Механизм не поддерживает эти опции запуска MATLAB:

  • -h

  • -help

  • -?

  • -n

  • -e

  • -softwareopengl

  • -logfile

Для получения информации об опциях запуска MATLAB смотрите Обычно Используемые опции запуска. Для примера того, как использовать опции запуска MATLAB при запущении приложений механизма, смотрите, Запускают MATLAB с опций запуска.

Сводные данные метода

Функции членства

feval

Оцените функцию MATLAB с аргументами синхронно

fevalAsync

Оцените функцию MATLAB с аргументами асинхронно

eval

Оцените выражение MATLAB как строку синхронно

evalAsync

Оцените выражение MATLAB как строку асинхронно

getVariable

Станьте переменными от базового рабочего пространства MATLAB синхронно

getVariableAsync

Станьте переменными от базового рабочего пространства MATLAB асинхронно

setVariable

Поместите переменную в базовое рабочее пространство MATLAB синхронно

setVariableAsync

Поместите переменную в базовое рабочее пространство MATLAB асинхронно

getProperty

Получите значение свойства объекта

getPropertyAsync

Получите значение свойства объекта асинхронно

setProperty

Установите значение свойства объекта

setPropertyAsync

Установите значение свойства объекта асинхронно

Детали функции членства

feval

std::vector<matlab::data::Array> feval(const matlab::engine::String &function,
   const size_t numReturned,
   const std::vector<matlab::data::Array> &args,
   const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(),
   const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
matlab::data::Array feval(const matlab::engine::String &function, 
   const std::vector<matlab::data::Array> &args, 
   const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(),
   const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
matlab::data::Array feval(const matlab::engine::String &function,
   const matlab::data::Array &arg,
   const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(),
   const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
ResultType feval(const matlab::engine::String &function,
   const std::shared_ptr<matlab::engine::StreamBuffer> &output,
   const std::shared_ptr<matlab::engine::StreamBuffer> &error,
   RhsArgs&&... rhsArgs )
ResultType feval(const matlab::engine::String &function,
   RhsArgs&&... rhsArgs)

Описание

Оцените функции MATLAB с входными параметрами синхронно. Используйте feval, когда это необходимо, чтобы передать аргументы от C++ до MATLAB и, когда это необходимо, возвратить результат MATLAB в C++.

Вводы и выводы могут быть типами, заданными API Массива данных MATLAB, или могут быть нативными типами C++.

Параметры

const matlab::engine::String &function

Имя функции MATLAB или скрипта, чтобы оценить. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

const size_t numReturned

Количество возвращенных значений

const std::vector<matlab::data::Array> &args

Несколько входных параметров, чтобы передать функции MATLAB в std::vector. Вектор преобразован в массив столбца в MATLAB.

const matlab::data::Array arg

Один входной параметр, чтобы передать функции MATLAB.

const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>()

Потоковый буфер раньше хранил стандартный вывод от функции MATLAB.

const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>()

Потоковый буфер раньше хранил сообщение об ошибке от функции MATLAB.

RhsArgs&&... rhsArgs

Нативные типы данных C++ используются во входных параметрах функции. feval принимает скалярные входные параметры этих типов данных C++: bool, int8_t, int16_t, int32_t, int64_t, uint8_t, uint16_t, uint32_t, uint64_t, float'double'.

Возвращаемое значение

std::vector<matlab::data::Array>

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

matlab::data::Array

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

ResultType

Выведите возвратился из функции MATLAB как заданный пользователями тип. Может быть std::tuple при возврате нескольких аргументов.

Исключения

matlab::engine::MATLABNotAvailableException

Сеанс работы с MATLAB не доступен.

matlab::engine::MATLABExecutionException

В функции существует ошибка периода выполнения MATLAB.

matlab::engine::TypeConversionException

Результат функции MATLAB не может быть преобразован в заданный тип.

matlab::engine::MATLABSyntaxException

В функции MATLAB существует синтаксическая ошибка.

Примеры

Этот пример передает массив числовых значений к функции MATLAB. Код выполняет эти шаги:

  • Создает matlab::data::Array с размерностями 2 3 от вектора числовых значений, типа double.

  • Запускает разделяемый сеанс работы с MATLAB.

  • Передает массив данных sqrt MATLAB функционируйте и возвращает результат в C++.

#include "MatlabDataArray.hpp"
#include "MatlabEngine.hpp"
using namespace matlab::engine;
    std::vector<double> cppData{ 4, 8, 12, 16, 20, 24 };

    // Create a 2-by-3 matlab data array 
    matlab::data::ArrayFactory factory;
    auto inputArray = factory.createArray({ 2, 3 }, cppData.cbegin(), cppData.cend());

    // Start MATLAB engine
    std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();

    // Pass data array to MATLAB sqrt function 
    // And return results.
    auto result = matlabPtr->feval(u"sqrt", inputArray);

При вызове feval с помощью нативных типов C++ входные параметры ограничиваются скалярными значениями. Например, этот код возвращает квадратный корень из скалярного значения.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
    // Start MATLAB engine synchronously
    std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
    
    // Call sqrt function
    double result = matlabPtr->feval<double>(u"sqrt", double(27));

Для функций, которые возвращают несколько выходных аргументов, можно использовать API данных MATLAB или, при использовании типов C++, std::tuple. Для примера смотрите, Вызывают Функцию с Собственным компонентом Типы C++.

fevalAsync

FutureResult<std::vector<matlab::data::Array>> fevalAsync(const matlab::engine::String &function,
   const size_t numReturned,
   const std::vector<matlab::data::Array> &args,
   const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(),
   const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
FutureResult<matlab::data::Array> fevalAsync(const matlab::engine::String &function,
   const std::vector<matlab::data::Array> &args,
   const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>(),
   const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>())
FutureResult<matlab::data::Array> fevalAsync(const matlab::engine::String &function,
   const matlab::data::Array &arg,
   const std::shared_ptr<matlab::engine::StreamBuffer> & output = std::shared_ptr<matlab::engine::StreamBuffer>(),
   const std::shared_ptr<matlab::engine::StreamBuffer> & error = std::shared_ptr<matlab::engine::StreamBuffer>())
FutureResult<ResultType> fevalAsync(const matlab::engine::String &function,
   const std::shared_ptr<matlab::engine::StreamBuffer> &output,
   const std::shared_ptr<matlab::engine::StreamBuffer> &error,
   RhsArgs&&... rhsArgs)
FutureResult<ResultType> fevalAsync(const matlab::engine::String &function,
   RhsArgs&&... rhsArgs)

Описание

Оцените функцию MATLAB с входными параметрами и возвращенными значениями асинхронно.

Параметры

const matlab::engine::String &function

Имя функции MATLAB или скрипта, чтобы оценить. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

const size_t numReturned

Количество возвращенных значений

const std::vector<matlab::data::Array> &args

Несколько входных параметров, чтобы передать функции MATLAB в std::vector. Вектор преобразован в массив столбца в MATLAB.

const matlab::data::Array arg

Один входной параметр, чтобы передать функции MATLAB.

const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer>()

Потоковый буфер раньше хранил стандартный вывод от функции MATLAB.

const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer>()

Потоковый буфер раньше хранил сообщение об ошибке от функции MATLAB.

RhsArgs&&... rhsArgs

Нативные типы данных C++ используются во входных параметрах функции. feval принимает скалярные входные параметры этих типов данных C++: bool, int8_t, int16_t, int32_t, int64_t, uint8_t, uint16_t, uint32_t, uint64_t, float'double'.

Возвращаемое значение

FutureResult

FutureResult объект раньше получал результат вызова функции MATLAB.

Исключения

'none'

Примеры

Этот пример передает скаляр дважды 12.7 к sqrt MATLAB функционируйте асинхронно. FutureResult затем используется, чтобы получить результат.

#include "MatlabDataArray.hpp"
#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
    matlab::data::ArrayFactory factory;
    matlab::data::Array argument = factory.createScalar<double>(12.7);
    FutureResult<matlab::data::Array> future = matlabPtr->fevalAsync(u"sqrt", std::move(argument));
       ...
    matlab::data::TypedArray<double> result = future.get();

eval

void eval(const matlab::engine::String &statement,
   const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer> (),
   const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer> ())

Описание

Оцените выражение MATLAB как строку синхронно.

Параметры

const matlab::engine::String &statement

Выражение MATLAB, чтобы оценить

const std::shared_ptr<matlab::engine::StreamBuffer> &output

Потоковый буфер раньше хранил стандартный вывод от выражения MATLAB.

const std::shared_ptr<matlab::engine::StreamBuffer> &error

Потоковый буфер раньше хранил сообщение об ошибке от команды MATLAB.

Исключения

matlab::engine::MATLABNotAvailableException

Сеанс работы с MATLAB не доступен.

matlab::engine::MATLABExecutionException

В выражении MATLAB существует ошибка периода выполнения.

matlab::engine::MATLABSyntaxException

В выражении MATLAB существует синтаксическая ошибка.

Примеры

Этот пример оценивает следующее выражение MATLAB.

a = sqrt(12.7);

Оператор создает переменную a в базовом рабочем пространстве MATLAB.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
matlabPtr->eval(u"a = sqrt(12.7);");

evalAsync

FutureResult<void> evalAsync(const matlab::engine::String &str,
   const std::shared_ptr<matlab::engine::StreamBuffer> &output = std::shared_ptr<matlab::engine::StreamBuffer> (),
   const std::shared_ptr<matlab::engine::StreamBuffer> &error = std::shared_ptr<matlab::engine::StreamBuffer> ())

Описание

Оцените выражение MATLAB как строку асинхронно.

Параметры

const matlab::engine::String& str

Выражение MATLAB, чтобы оценить

const std::shared_ptr<matlab::engine::StreamBuffer> & output

Потоковый буфер раньше хранил стандартный вывод от выражения MATLAB.

const std::shared_ptr<matlab::engine::StreamBuffer> & error

Потоковый буфер раньше хранил сообщение об ошибке от команды MATLAB.

Возвращаемое значение

FutureResult

FutureResult объект раньше ожидал завершения выражения MATLAB.

Исключения

'none'

Примеры

Этот пример оценивает следующее выражение MATLAB асинхронно.

a = sqrt(12.7);

Оператор создает переменную a в базовом рабочем пространстве MATLAB.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
FutureResult<void> future = matlabPtr->evalAsync(u"a = sqrt(12.7);");

getVariable

matlab::data::Array getVariable(const matlab::engine::String &varName,
    matlab::engine::WorkspaceType workspaceType = matlab::engine::WorkspaceType::BASE)

Описание

Получите переменную из основы MATLAB или глобальной рабочей области.

Параметры

const matlab::engine::String& varName

Имя переменной в рабочем пространстве MATLAB. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

matlab::engine::WorkspaceType workspaceType = matlab::engine::WorkspaceType::BASE

Рабочее пространство MATLAB (ОСНОВА или ГЛОБАЛЬНАЯ ПЕРЕМЕННАЯ), чтобы получить переменную из. Для получения дополнительной информации смотрите global.

Возвращаемое значение

matlab::data::Array

Переменная, полученная из MATLAB, базируется или глобальная рабочая область

Исключения

matlab::engine::MATLABNotAvailableException

Сеанс работы с MATLAB не доступен.

matlab::engine::MATLABExecutionException

Требуемая переменная не существует в заданной основе MATLAB или глобальной рабочей области.

Примеры

Этот пример получает переменную под названием varName от базового рабочего пространства MATLAB.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
matlab::data::Array varName = matlabPtr->getVariable(u"varName");

getVariableAsync

FutureResult<matlab::data::Array> getVariableAsync(const matlab::engine::String &varName,
    matlab::engine::WorkspaceType workspaceType = matlab::engine::WorkspaceType::BASE)

Описание

Получите переменную из основы MATLAB или глобальной рабочей области асинхронно.

Параметры

const matlab::engine::String& varName

Имя переменной в рабочем пространстве MATLAB. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

matlab::engine::WorkspaceType workspaceType = matlab::engine::WorkspaceType::BASE

Рабочее пространство MATLAB (ОСНОВА или ГЛОБАЛЬНАЯ ПЕРЕМЕННАЯ), чтобы получить переменную из. Для получения дополнительной информации смотрите global.

Возвращаемое значение

FutureResult

FutureResult возразите, что можно использовать, чтобы получить переменную из рабочего пространства MATLAB как matlab.data.Array.

Исключения

'none'

Примеры

Этот пример получает переменную под названием varName от базового рабочего пространства MATLAB асинхронно.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
FutureResult<matlab::data::Array> future = matlabPtr->getVariableAsync(u"varName");
...
matlab::data::Array varName = future.get();

setVariable

void setVariable(const matlab::engine::String &varName,
   const matlab::data::Array &var,
   matlab::engine::WorkspaceType workspaceType = matlab::engine::WorkspaceType::BASE)

Описание

Поместите переменную в основу MATLAB или глобальную рабочую область. Если переменная с тем же именем существует в рабочем пространстве MATLAB, setVariable перезаписи это.

Параметры

const matlab::engine::String& varName

Имя переменной, чтобы создать в рабочем пространстве MATLAB. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

const matlab::data::Array var

Значение переменной, чтобы создать в рабочем пространстве MATLAB

matlab::engine::WorkspaceType workspaceType = matlab::engine::WorkspaceType::BASE

Поместите переменную в ОСНОВУ MATLAB или ГЛОБАЛЬНУЮ рабочую область. Для получения дополнительной информации смотрите global.

Исключения

matlab::engine::MATLABNotAvailableException

Сеанс работы с MATLAB не доступен.

Примеры

Этот пример помещает переменную под названием data в базовом рабочем пространстве MATLAB.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
matlab::data::Array data = factory.createArray<double>({ 1, 3 }, { 4, 8, 6 });
matlabPtr->setVariable(u"data", data);

setVariableAsync

FutureResult<void> setVariableAsync(const matlab::engine::String &varName,
   const matlab::data::Array var,
   matlab::engine::WorkspaceType workspaceType = matlab::engine::WorkspaceType::BASE)

Описание

Поместите переменную в основу MATLAB или глобальную рабочую область асинхронно. Если переменная с тем же именем существует в базовом рабочем пространстве MATLAB, setVariableAsync перезаписи это.

Параметры

const matlab::engine::String& varName

Имя переменной, чтобы создать в рабочем пространстве MATLAB. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

const matlab::data::Array var

Значение переменной, чтобы создать в рабочем пространстве MATLAB

matlab::engine::WorkspaceType workspaceType = matlab::engine::WorkspaceType::BASE

Поместите переменную в ОСНОВУ MATLAB или ГЛОБАЛЬНУЮ рабочую область. Для получения дополнительной информации смотрите global.

Исключения

'none'

Пример

Этот пример помещает переменную под названием data в базовом рабочем пространстве MATLAB.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
matlab::data::Array data = factory.createArray<double>({ 1, 3 }, { 4., 8., 6. });
FutureResult<void> future = matlabPtr->setVariableAsync(u"data", data);

getProperty

matlab::data::Array getProperty(const matlab::data::Array &objectArray,
    size_t index,
    const matlab::engine::String &propertyName)
matlab::data::Array getProperty(const matlab::data::Array &object,
   const matlab::engine::String &propertyName)

Описание

Получите значение свойства объекта. Если объектный входной параметр является массивом объектов, задайте индекс элемента массива, который соответствует объекту, значение свойства которого вы хотите получить.

Параметры

const matlab::data::Array &objectArray

Массив объектов MATLAB

const matlab::data::Array &object

Скалярный объект MATLAB

size_t index

Основанный на нуле индекс в объектный массив, задавая объект в том массиве, значение свойства которого возвращено

const String &propertyName

Имя свойства. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

Возвращаемое значение

matlab::data::Array

Значение именованного свойства

Исключения

matlab::engine::MATLABNotAvailableException

Сеанс работы с MATLAB не доступен.

matlab::engine::MATLABExecutionException

Свойство не существует.

Примеры

Этот пример оценивает выражение MATLAB в блоке попытки/выгоды с помощью MATLABEngine::eval. MATLABEngine::getVariable функция членства возвращает объект исключения. MATLABEngine::getProperty возвращает исключение message значение свойства как matlab::data::CharArray.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
matlabPtr->eval(u"try; surf(4); catch me; end");
matlab::data::Array mException = matlabPtr->getVariable(u"me");
matlab::data::CharArray message = matlabPtr->getProperty(mException, u"message");
std::cout << "messages is: " << message.toAscii() << std::endl;

getPropertyAsync

FutureResult<matlab::data::Array> getPropertyAsync(const matlab::data::Array &objectArray,
    size_t index,
    const matlab::engine::String &propertyName)
FutureResult<matlab::data::Array> getPropertyAsync(const matlab::data::Array &object,
   const matlab::engine::String &propertyName)

Описание

Получите значение свойства объекта асинхронно. Если объектный входной параметр является массивом объектов, задайте индекс элемента массива, который соответствует объекту, значение свойства которого вы хотите получить.

Параметры

const matlab::data::Array &objectArray

Массив объектов MATLAB

const matlab::data::Array &object

Скалярный объект MATLAB

size_t index

Основанный на нуле индекс в объектный массив, задавая объект в том массиве, значение свойства которого возвращено

const matlab::engine::String &propertyName

Имя свойства. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

Возвращаемое значение

FutureResult

FutureResult объект, который используется, чтобы синхронизировать операцию.

Исключения

'none'

Примеры

Этот пример оценивает выражение MATLAB в блоке попытки/выгоды с помощью MATLABEngine::eval. MATLABEngine::getVariable функция членства возвращает объект исключения. MATLABEngine::getPropertyAsync возвращает FutureResult то, что вы используете, чтобы получить исключение message значение свойства как matlab::data::CharArray.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
matlabPtr->eval(u"try;surf(4);catch me;end");
matlab::data::Array mException = matlabPtr->getVariable(u"me");
FutureResult<matlab::data::Array> future = matlabPtr->getPropertyAsync(mException, u"message");
matlab::data::CharArray message = future.get();
std::cout << "messages is: " << message.toAscii() << std::endl;

setProperty

void setProperty(matlab::data::Array &objectArray,   
    size_t index,
    const matlab::engine::String &propertyName,
    const matlab::data::Array &propertyValue)
void setProperty(matlab::data::Array &object, 
    const matlab::engine::String &propertyName,
    const matlab::data::Array &propertyValue)

Описание

Установите значение свойства объекта. Если объектный входной параметр является массивом объектов, задайте индекс элемента массива, который соответствует объекту, значение свойства которого вы хотите установить.

Параметры

matlab::data::Array &objectArray

Массив объектов MATLAB

matlab::data::Array &object

Скалярный объект MATLAB

size_t index

Основанный на нуле индекс в объектный массив, задавая объект в том массиве, значение свойства которого установлено

const matlab::engine::String &propertyName

Имя свойства установить. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

const matlab::data::Array &propertyValue

Значение присвоено свойству

Исключения

matlab::engine::MATLABNotAvailableException

Сеанс работы с MATLAB не доступен.

matlab::engine::MATLABExecutionException

Свойство не существует.

Примеры

В этом примере показано, как установить свойство объекта MATLAB. Это создает график MATLAB и возвращает объект указателя линии. Устанавливание значения линии LineStyle свойство к символьному : изменяет значение свойства объекта линии в MATLAB и обновляет стиль линии графика.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
matlab::data::ArrayFactory factory;
matlab::data::Array yData = factory.createArray<double>({ 1, 5 }, { 4.0, 11.0, 4.7, 36.2, 72.3 });
matlab::data::Array lineHandle = matlabPtr->feval(u"plot", yData);
matlab::data::CharArray lineStyle = factory.createCharArray(":");
matlabPtr->setProperty(lineHandle, u"LineStyle", lineStyle);

setPropertyAsync

FutureResult<void> setPropertyAsync(matlab::data::Array &objectArray,   
    size_t index,
    const matlab::engine::String &propertyName,
    const matlab::data::Array &propertyValue)
FutureResult<void> setPropertyAsync(matlab::data::Array &object,
 const matlab::engine::String &propertyName,
 const matlab::data::Array &propertyValue)

Описание

Установите значение свойства объекта асинхронно. Если объектный входной параметр является массивом объектов, задайте индекс элемента массива, который соответствует объекту, значение свойства которого вы хотите установить.

Параметры

matlab::data::Array &objectArray

Массив объектов MATLAB

matlab::data::Array &object

Скалярный объект MATLAB

size_t index

Основанный на нуле индекс в объектный массив, задавая объект в том массиве, значение свойства которого установлено

const matlab::engine::String &propertyName

Имя свойства установить. Задайте имя как std::u16string. Кроме того, можно задать этот параметр как std::string.

const matlab::data::Array &propertyValue

Значение присвоено свойству.

Исключения

'none'

Примеры

В этом примере показано, как установить свойство объекта MATLAB асинхронно. Это создает график MATLAB и возвращает объект указателя линии. Установка линии LineStyle свойство к символьному : изменяет значение свойства объекта в MATLAB и обновляет стиль линии графика.

#include "MatlabEngine.hpp"
using namespace matlab::engine;
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
matlab::data::ArrayFactory factory;
matlab::data::Array yData = factory.createArray<double>({ 1, 5 }, { 4.0, 11.0, 4.7, 36.2, 72.3 });
matlab::data::Array lineHandle = matlabPtr->feval(u"plot", yData);
matlab::data::CharArray lineStyle = factory.createCharArray(":");    
FutureResult<void> future = matlabPtr->setPropertyAsync(lineHandle, u"LineStyle", lineStyle);

Введенный в R2017b