matlab::engine::MATLABEngine

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

Описание

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

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

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

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

Заводские методы

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

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

Движок не поддерживает следующие опции запуска MATLAB:

  • -h

  • -help

  • -?

  • -n

  • -e

  • -softwareopengl

  • -logfile

Для получения информации об опциях запуска MATLAB, см. «Обычно используемые опции запуска». Пример использования опций запуска MATLAB при запуске приложений Engine см. в Start 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++.

Входы и выходы могут быть типами, заданными MATLAB Data Array API или могут быть собственными типами 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));

Для функций, которые возвращают несколько выходных аргументов, можно использовать MATLAB data API или, если используется тип 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 функция асинхронно. The 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. The MATLABEngine::getVariable Функция member возвращает объект исключения. 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. The MATLABEngine::getVariable Функция member возвращает объект исключения. 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