c++ - 将回调从 C++ 发送到编译为 C++ 共享库的 MATLAB 函数
问题描述
我有一个 MATLAB 函数,它保存在同名的 .m 文件中:
function a = addmtx(a1, a2, f_callback)
a = a1 + a2;
f_callback(a1*2, a2*2);
end
然后我通过 matlab 库编译器将该 .m 文件编译为 c++ 共享库。为 C++ 编译的 addmtx.h 头文件具有以下功能:
extern LIB_mLibAddmtx_CPP_API void MW_CALL_CONV addmtx(int nargout, mwArray& a, const mwArray& a1, const mwArray& a2, const mwArray& f_callback);
可以看到,MATLAB函数的最后一个参数是回调,但是在C++代码中,是作为mwArray&引入的。 现在如何将 C++ 函数作为回调发送到这个 MATLAB 函数?
之前尝试过使用mclCreateSimpleFunctionHandle()函数,但是这个函数返回的mxArray*类型与mwArray&不兼容。
解决方案
推荐阅读
- python - Python getter、setter 和操作字段
- officer - 在 R 官员包中重新启动自动编号
- visual-studio-mac - Visual Studio Mac 浮动选项卡
- python - 如何在 tkinter 中删除和绘制新按钮?
- symfony - The class 'App\Repository\Users\UserRepository' was not found in the chain configured namespaces App\Entity\Users
- python - 无法将另一个内核添加到 Jupyter 笔记本
- android - 如何在android中将数据传递给MaterialAlertDialogBuilder
- java - Spring WebClient 多部分/表单数据请求,无法发送文件
- ios - 完成处理程序不起作用(所有任务同时执行)
- audio - 在 pygame 中使用声音会使我的游戏崩溃