Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Matlab句柄类转换为C++; 我在MATLAB中有一个句柄类,我希望能够在C++中使用。 我已经知道我不能只生成C++类,而必须用函数来包装我的类。 另一个问题中的示例仅显示了在包装器函数中使用一个成员函数。但是,我需要能够调用类的几个成员函数_C++_Matlab - Fatal编程技术网

将Matlab句柄类转换为C++; 我在MATLAB中有一个句柄类,我希望能够在C++中使用。 我已经知道我不能只生成C++类,而必须用函数来包装我的类。 另一个问题中的示例仅显示了在包装器函数中使用一个成员函数。但是,我需要能够调用类的几个成员函数

将Matlab句柄类转换为C++; 我在MATLAB中有一个句柄类,我希望能够在C++中使用。 我已经知道我不能只生成C++类,而必须用函数来包装我的类。 另一个问题中的示例仅显示了在包装器函数中使用一个成员函数。但是,我需要能够调用类的几个成员函数,c++,matlab,C++,Matlab,由于我无法将我的类实例传递给包装函数,因此我看不到让多个函数在同一个对象上操作的方法 不可能这样做吗 感谢您的帮助 我不认为有一种方法可以让多个函数在同一个对象上运行 为什么不呢?您可以使用指针作为输入参数 int main() { int myarr[5] = {1, 2, 3, 4, 5}; double myval1, myval2; myval = myfun1(myarr, 100); // myarr is unchanged myfun2(&myarr,

由于我无法将我的类实例传递给包装函数,因此我看不到让多个函数在同一个对象上操作的方法

不可能这样做吗

感谢您的帮助

我不认为有一种方法可以让多个函数在同一个对象上运行

为什么不呢?您可以使用
指针
作为输入参数

int main() {
  int myarr[5] = {1, 2, 3, 4, 5};
  double myval1, myval2;
  myval = myfun1(myarr, 100);  // myarr is unchanged
  myfun2(&myarr, 200);         // myarr now has new values
  return 0;
}

double myfun1(int *arr, int para1) {
// @TODO1
}

void myfun2(int *arr, int para2) {
// @TODO2: here you can change value of *arr which is returned back to the calling function
}

myarr
可以更改为您想要的任何类。

您不能将类作为生成代码的主函数的输入和输出。但是您可以从主函数调用任意数量的子函数,这些子函数可以将对象作为输入。对象通常从主函数创建并传递给子函数。然后使用codegen“主函数名”生成代码。生成的代码包含所有子函数


您还应该在子函数中使用
coder.inline('never')
,以便它们在生成的代码中显示为单独的函数。

您链接到的答案非常古老,写于2013年3月。MATLAB编码器从那时起发生了很大的变化。这是真的。但根据MATLAB文档,同样存在着局限性。我试图用MATLAB编写的将一个MATLAB类转换成C++。该工具不能直接翻译Matlab类,但可以翻译操纵Matlab类的函数。因此,为了导出MATLAB类到C++,建议的程序是编写MATLAB函数,然后使用MATLAB编码器在函数上,这给了我C/C++函数。根据Matlab文档,编码器无法处理以Matlab类作为输入/输出参数的函数。似乎Matlab类必须专门存在于Matlab函数中。