Тип рабочего пространства MATLAB
matlab::engine::WorkspaceType
класс Enum задает рабочую область 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); }