如何C-MEX功能管理其内存当有多个实例的一个模型吗?

9的观点(30天)
我有一个C-MEX s函数,其中包含大量的全局变量。编译后的s函数问题,我在仿真软件模型的实例化两个副本。万博1manbetx每个实例化(块)接收相同的输入信号,但一组不同的参数传递给函数的每个实例。当我运行模型,我希望看到不同的输出,但是我看到两块相同的输出。为什么会出现这样的情况?

接受的答案

MathWorks支万博1manbetx持团队
这是因为s函数的实例共享内存。对于一个给定的函数,它的所有实例引用相同的DLL,因此导致共享内存空间。的实例有一个单独的内存,您需要提供不同的输入实例(这似乎并不是在你的模型)或实例化一个新的DWork向量存储数据。此外,似乎有全局变量不是你观察的行为的主要原因。
作为一个解决方案,我建议创建一个克隆的原始功能,重命名并添加到模型中。这应该在不同的输出结果。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!