我正在使用Matlab和C++进行绘图。在我现在的过程中,我需要使用matlab函数将一个变量传递给matlab,并且还需要一个字符串,它将在matlab环境中命名该变量。我打电话的功能是engPutVariable(ep, "varMatlab" , varC++)
其中ep是类(matlab)引擎的对象,varC++
是我传递的C++中的变量的名称,varMatlab
将存储在matlab工作空间中时是同一变量的名称。我使用的过程需要4行代码来传递一个变量,它为我传递的每个变量执行相同的工作,因此我想编写一个函数,其中包含变量的名称和C++中变量的名称需要在“”引号中的matlab。
问:
由于功能要求里面的“”(双引号)要传递的变量的名称,我想通过一个字符串,将采取varMatlab的地方引号内。我尝试使用字符串本身插入“”,但似乎在这种情况下不起作用。任何帮助将非常有帮助。
我写了下面的函数来做同样的事情,但字符串name
应该在我不知道如何传递的“”中。
void putVar(double* var,int N, string name, Engine *ep){
double row = N, col = N;
mxArray *matlab = mxCreateDoubleMatrix(row, col, mxREAL);
double *pa = mxGetPr(matlab);
memcpy(pa, var, sizeof(double)*row*col);
engPutVariable(ep, "name" , matlab);
}
谢谢,这正是我一直在寻找的!真的很有帮助.. – Pranav