matlab::mex::Function
C++ MEX 函数的基类
描述
您在 C++ MEX 函数中实现的 MexFunction 类必须从 matlab.mex.Function 类继承。matlab.mex.Function 类支持访问 C++ Engine API 并定义虚拟 operator() 函数,您的 MexFunction 类必须覆盖此函数。
类详细信息
命名空间: | matlab::mex |
包括: | mexAdapter.hpp - 仅包含此文件一次,用于实现 MexFunction 类 |
成员函数
operator()
virtual void operator()(ArgumentList outputs, ArgumentList inputs)函数调用运算符,您必须在 MexFunction 类中覆盖它。此运算符使您的 MexFunction 类的实例可以像函数一样被调用。
参数
matlab::mex::ArgumentList outputs | 返回到 MATLAB® 的 matlab::data::Array 对象的集合 |
matlab::mex::ArgumentList inputs | 从 MATLAB 传递给 MEX 函数的 matlab::data::Array 对象的集合 |
示例
class MexFunction : public matlab::mex::Function {
public:
void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) {
...
}
}getEngine
std::shared_ptr<matlab::engine::MATLABEngine> getEngine()返回指向 MATLABEngine 对象的指针,该指针支持访问 C++ Engine API。
返回
| 指向 |
示例
调用 MATLAB clear 函数。
std::shared_ptr<MATLABEngine> matlabPtr = getEngine();
matlabPtr->eval(matlab::engine::convertUTF8StringToUTF16String("clear"));
mexLock
void mexLock()防止从内存中清除 MEX 文件。不要从用户线程调用 mexLock 或 mexUnlock。
示例
锁定 MEX 文件。
mexLock();mexUnlock
解锁 MEX 文件并允许从内存中清除文件。不要从用户线程调用 mexLock 或 mexUnlock。
void mexLock()示例
解锁 MEX 文件。
mexUnlock();getFunctionName
std::u16string getFunctionName() const返回 MEX 函数的名称,即源文件的名称。
示例
获取当前正在执行的 MEX 函数的文件名。
std::u16string fileName = getFunctionName();版本历史记录
在 R2018a 中推出