主要内容

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。

返回

std::shared_ptr<matlab::engine::MATLABEngine>

指向 MATLABEngine 对象的指针

示例

调用 MATLAB clear 函数。

std::shared_ptr<MATLABEngine> matlabPtr = getEngine();
matlabPtr->eval(matlab::engine::convertUTF8StringToUTF16String("clear"));

mexLock

void mexLock()

防止从内存中清除 MEX 文件。不要从用户线程调用 mexLockmexUnlock

示例

锁定 MEX 文件。

mexLock();

mexUnlock

解锁 MEX 文件并允许从内存中清除文件。不要从用户线程调用 mexLockmexUnlock

void mexLock()
示例

解锁 MEX 文件。

mexUnlock();

getFunctionName

std::u16string getFunctionName() const

返回 MEX 函数的名称,即源文件的名称。

示例

获取当前正在执行的 MEX 函数的文件名。

std::u16string fileName = getFunctionName();

版本历史记录

在 R2018a 中推出