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 に答える