我有一个在 .mex32 文件中转换的 .cpp。在 .cpp 文件中,我使用 mexGetVariable 从基础工作区获取变量:
mxArray *array_ptr = mexGetVariable("base", "variable_name1");
if (array_ptr == NULL)
{
mexPrintf("Could not get variable_name1 from MATLAB workspace.");
}
double pr1 = (double)mxGetPr(array_ptr)[0];
%same for variable_name2
%same for variable_name3
%same for variable_name4
我也对其他变量使用相同的代码。我想知道是否有办法一次性获取我想要的所有基本工作区变量(variable_name1 到 variable_nameN)。
stringstream
是你的 friend :
for(unsigned i = 0; i < N; ++i) {
std::stringstream var_stream;
var_stream << "variable_name" << i;
mxArray *array_ptr = mexGetVariable("base", var_stream.str().c_str());
// etc
我是一名优秀的程序员,十分优秀!