gpt4 book ai didi

c++ - 如何让 Matlab 使 mex session 保持事件状态

转载 作者:行者123 更新时间:2023-11-27 23:17:08 26 4
gpt4 key购买 nike

我的问题是如何对 Matlab 和我的 C++ 代码进行编程,以便它们可以交互。更具体地说,我有一个 c++ 程序来处理数据、创建对象、导出该对象的统计信息并写入 mat 文件。然后我会将其加载到 matlab 中以进行进一步的分析和可视化。 然而,处理数据和创建对象所花费的时间是巨大的,而导出统计数据的时间可以忽略不计。另一方面,有很多统计数据和它们的不同组合,很难预测我们将使用什么组合。所以我希望我可以多次交互运行“统计”部分,而不是重复处理数据的工作。

我的问题是:我可以要求 Matlab 执行以下操作: 1. 调用 c++ 代码; 2. 处理数据并创建对象后,让该对象在内存中保持“事件”状态 3. 再次调用 C++ 代码以请求将统计信息加载到我的工作区中。 4. 用不同的统计数据重复 3。 谢谢

最佳答案

另一种选择可能是在您的 MEX 函数中创建一个 C++ 类实例,并将指向它的指针返回给 MATLAB,并将该指针传递给任何后续调用。如果您使用这种方法,您还应该为它创建一个 MATLAB 句柄类包装器,以允许您在其析构函数中正确清理内存。 Here是建议张贴者这样做的帖子,并且this是 Mathworks FileExchange 上的方法示例。

此方法对您的问题的适用性取决于问题的复杂性。我个人只会在使用其他方法解决问题非常复杂时才走这条路(例如,您需要使用某个库中的 C++ 类并且该实例必须在调用之间保持事件状态,或者如果全局变量不能解决问题您需要跟踪很多实例,这自然最好由一组 C++ 类来表示,您可以在其中适本地分离您的关注点)。

关于c++ - 如何让 Matlab 使 mex session 保持事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15704035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com