我正在使用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