Я должен написать код 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
добавить mexFunction to increase the efficiency
. Из-за этого я хочу иметь возможность использовать
void MMclass::mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
...
}
для доступа и изменения переменных, объявленных в исходном классе, который также используется остальной частью кода. Я не могу понять, как объявить mexFunction в MMclass, чтобы он работал. 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;
}
mexFunction
экспортированную из библиотеки.MMclass
что вMMclass
есть метод с именемmexFunction
, не делает его доступным. Вам нужна постоянная память? Какую проблему ты пытаешься решить?