exponenta event banner

matlab:: двигатель:: 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 с помощью аргументов асинхронно

оценка

Вычислить оператор 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 Data Array, или могут быть собственными типами 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.

  • Передача массива данных в MATLAB sqrt и возвращает результат в 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

A FutureResult используется для получения результата вызова функции MATLAB.

Исключения

Ничего

Примеры

В этом примере скалярный двойной 12.7 передается в MATLAB sqrt асинхронно. 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

A FutureResult объект, используемый для ожидания завершения инструкции MATLAB.

Исключения

Ничего

Примеры

В этом примере асинхронно вычисляется следующая инструкция 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 (BASE или GLOBAL). Дополнительные сведения см. в разделе 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 (BASE или GLOBAL). Дополнительные сведения см. в разделе global.

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

FutureResult

A FutureResult объект, который можно использовать для получения переменной, полученной из рабочей области MATLAB, как matlab.data.Array.

Исключения

Ничего

Примеры

Этот пример получает переменную с именем 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 BASE или GLOBAL. Дополнительные сведения см. в разделе 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 BASE или GLOBAL. Дополнительные сведения см. в разделе global.

Исключения

Ничего

Пример

В этом примере помещается переменная с именем 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 в блоке try/catch с помощью 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 объект, используемый для синхронизации операции.

Исключения

Ничего

Примеры

В этом примере вычисляется инструкция MATLAB в блоке try/catch с помощью 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

Значение, назначенное свойству.

Исключения

Ничего

Примеры

В этом примере показано, как задать свойство объекта 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