之前的博文讲过Matlab引擎,为了使用方便我把它封装成类,实现常见的操作( 诸如把C中的数组传入Matlab工作区,把Matlab工作区的代码提取到C等),代码奉上:
#pragma once
#ifndef H_MATLAB_ENGINE
#define H_MATLAB_ENGINE
#include <Engine.h>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
#pragma comment(lib, "libmx.lib")
#pragma comment(lib, "libmat.lib")
#pragma comment(lib, "libeng.lib")
class CMatEngine
{
public:
CMatEngine(): ep(NULL)
{
if ( !( ep = engOpen(NULL) ) ) //测试是否启动Matlab引擎成功。
{
cout <<"Can't start Matlab engine!" <<endl;
getchar();
}
}
~CMatEngine()
{
engClose(ep);
}
template <typename T>
int PushVariable(const T * pArray, int ArrLength, const char * VariableName )
{
double * pCopyArray = new double[ArrLength];
memset( pCopyArray, 0, sizeof(double) * ArrLength );
for ( int i