C++ 在多线程中各自调用matlab
2021-06-17 04:04
标签:ddp code string void null path c++ style 编码 在C++中调用matlab引擎计算时,注意几个问题 1、engOpen、engClose ,engEvalString等等接口必须在同一线程中调用、例如:A、B两个线程,A为主线程,B为子线程 A:中创建Engine *m_ep = engOpen、engClose(m_ep), 在B中调用 engEvalString会导制调用失败。 必须在B中同时调用,例子如下: 2、多个线各自同时调用malab,例如有A、B、C三个线程同时调用时,要使用engOpenSingleUse(NULL)创建引擎 3、在C++调用matlab时,如何让matlab找到调用的m文件,方法如下: C++ 在多线程中各自调用matlab 标签:ddp code string void null path c++ style 编码 原文地址:https://www.cnblogs.com/math-turing/p/9722015.htmlvoid B:run()
{
Engine *ep = engOpen(NULL);
//这是调用matlab的方法
engEvalString
engClose(ep)
}
void A:run()
{
Engine *ep = engOpenSingleUse(NULL);
//这是调用matlab的方法
engEvalString
engClose(ep)
}
void B:run()
{
Engine *ep = engOpenSingleUse(NULL);
//这是调用matlab的方法
engEvalString
engClose(ep)
}
void C:run()
{
Engine *ep = engOpenSingleUse(NULL);
//这是调用matlab的方法
engEvalString
engClose(ep)
}
//支持中文编码
engEvalString(ep,"slCharacterEncoding(GBK)");
//添加查找路径
std::string strFindMPath = "addpath(genpath(‘" + M文件路径+ "‘));";
engEvalString(ep,strFindMPath);