Mex C++类函数声明

Mex C++ Class Function Declaration

本文关键字:声明 类函数 C++ Mex      更新时间:2023-10-16

我必须编写c++代码,从MatLab中接收一些矩阵,分析这些矩阵,并输出单个矩阵。分析的代码已经编写好了,所有的矩阵和变量都在一个类中声明,让我们称之为类MMclass

class MMclass {
  public:   
    // Start point of the application
    int inici(void);        
    #ifdef _WIN32
        ...
    #elif linux
        ...
    #endif
  private:          
    // Variables -------------------------------------------
    // Private methods -------------------------------------------
    ...
    void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]);
    ...
};

大部分代码已经写好了,我只是想添加mexFunction to increase the efficiency。正因为如此,我希望能够使用

void MMclass::mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    ...
}

访问和修改原始类中声明的变量,该类也由代码的其余部分使用。我不知道如何在MMclass中声明mexFunction以使其工作。mexFuntion在read.cpp中找到,我正在使用mex read.cpp进行编译。我试着使用一个结构并传递该结构,但更改所有预先编写的代码是非常乏味的。

class MMclass {
  public:   
    // Start point of the application
    int inici(void);        
    #ifdef _WIN32
        ...
    #elif linux
        ...
    #endif
  private:          
    // Variables -------------------------------------------
    // Private methods -------------------------------------------
     ...
    ...
};
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
  MMclass YourClassInstance;
}