使用mexGetVariable从工作空间获取多个变量

时间:2013-05-31 13:23:13

标签: c++ matlab mex

我有.cpp转换为.mex32文件。在.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)。

1 个答案:

答案 0 :(得分:1)

stringstream是你的朋友:

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