Базовый класс для MEX-функций C++
Класс MexFunction
, который вы реализуете в MEX-функциях C++, должен наследоваться классу matlab.mex.Function
. Класс matlab.mex.Function
включает доступ к Engine API для C++ и задает виртуальную функцию operator()
, которую должен заменить ваш класс MexFunction
.
Пространство имен: | matlab::mex |
Включение: | mexAdapter.hpp — Включайте этот файл только однажды для реализации класса MexFunction |
virtual void operator()(ArgumentList outputs, ArgumentList inputs)
Оператор вызова функции, который необходимо заменить в классе MexFunction
. Этот оператор позволяет экземплярам вашего класса MexFunction
быть названными как функция.
matlab::mex::ArgumentList outputs | Набор объектов matlab::data::Array , которые возвращены в MATLAB® |
matlab::mex::ArgumentList inputs | Набор объектов matlab::data::Array , которые передаются MEX-функции из MATLAB |
class MexFunction : public matlab::mex::Function { public: void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) { ... } }
std::shared_ptr<matlab::engine::MATLABEngine> getEngine()
Возвращает указатель на объект MATLABEngine
, который включает доступ к Engine API для C++.
|
Указатель на объект |
Вызовите функцию clear
MATLAB.
std::shared_ptr<MATLABEngine> matlabPtr = getEngine(); matlabPtr->eval(matlab::engine::convertUTF8StringToUTF16String("clear"));
void mexLock()
Предотвращает очищающийся файл MEX из памяти. Не вызывайте mexLock
или mexUnlock
от пользовательского потока.
Заблокируйте файл MEX.
mexLock();
Разблокировал файл MEX и позволяет очищаться файла из памяти. Не вызывайте mexLock
или mexUnlock
от пользовательского потока.
void mexLock()
Разблокируйте файл MEX.
mexUnlock();
std::u16string getFunctionName() const
Возвращает имя MEX-функции, которая является именем исходного файла.
Получите имя файла MEX-функции выполняющегося в данного момента.
std::u16string fileName = getFunctionName();