Тип рабочего пространства MATLAB
The matlab::engine::WorkspaceType
класс задаёт MATLAB® рабочая область, чтобы передать переменные в или получить переменные из.
BASE | Переменные, относящиеся к базовому рабочему пространству MATLAB (командная строка и нефункциональные скрипты) |
GLOBAL | Переменные, относящиеся к глобальной рабочей области MATLAB (командная строка, функции и скрипты) |
MATLAB масштабирует переменные по рабочим областям. Переменные, которые масштабируются в базовое рабочее пространство, должны быть переданы функциям в качестве аргументов. Переменные, относящиеся к глобальной рабочей области, могут быть доступны любой функцией, которая определяет конкретное имя переменной как глобальное.
Пространство имен: | matlab::engine |
Включать | MatlabEngine.hpp |
Этот пример:
Соединяется с общим сеансом работы с MATLAB
Создает matlab::data::Array
содержит числовые значения типа double
Помещает массив в глобальную рабочую область MATLAB
#include "MatlabDataArray.hpp" #include "MatlabEngine.hpp" #include <iostream> static void putGlobalVar() { using namespace matlab::engine; // Connect to named shared MATLAB session started as: // matlab -r "matlab.engine.shareEngine('myMatlabEngine')" String session(u"myMatlabEngine"); std::unique_ptr<MATLABEngine> matlabPtr = connectMATLAB(session); // Create matlab data array factory matlab::data::ArrayFactory factory; // Create data variable matlab::data::Array data = factory.createArray<double> ({ 1, 5 }, { 4.0, 11.0, 4.7, 36.2, 72.3 }); // Put data variable in MATLAB global workspace matlabPtr->setVariable(u"data", data, WorkspaceType::GLOBAL); }