c ++/MATLAB Mex绑定

And*_*itz 7 c++ matlab mex

我即将编写一个Mex文件,所以我可以在MATLAB中使用我的c ++代码.

此代码围绕单例类(在c ++中)构建.

我已经读过,因为内存要持久,我必须使用MxAlloc而不是malloc/new,这对我使用的所有内存都是如此吗?即,我使用矢量的类,矢量使用标准机制自动分配新的内存.

因此,使用MxAlloc分配的类中的向量是否难以保持其内存?

Dus*_*ell 7

您只能将MxAlloc用于要返回Matlab的数据.保留在库中的所有内容都可以正常分配.

您可能想要注意的一个问题是您的库可以随时卸载.通常,当用户调用mexFunction时,库将被加载并保持加载以用于后续调用.但是,Matlab可以随时卸载您的库,因此将释放mexFunction中的所有资源.

  • 如有必要,您可以使用mexLock http://www.mathworks.co.uk/help/techdoc/apiref/mexlock.html来停止卸载mex文件. (3认同)