Mex C ++类函数声明

时间:2015-02-07 04:54:53

标签: c++ matlab mex

我必须编写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进行编译。我试图使用结构并传递该结构,但更改所有预先编写的代码是相当繁琐的。

1 个答案:

答案 0 :(得分:0)

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;

}