1

我有一个在 .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)。

4

1 回答 1

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
于 2013-05-31T13:29:15.770 回答