如何在不需要重启Matlab的情况下覆盖mexw32?

LCF*_*ion 2 matlab mex

当我在matlab中编写自己的mex函数时,我必须调试它并在matlab的工作区中运行它时多次检查mex函数.

每次重建mexw32/mexw64时,我都需要在matlab环境中进一步测试之前用新构建的旧版本替换旧版本.

但是,如果我在覆盖旧版本之前没有重新启动Matlab,则总会出现错误消息"复制文件错误...,您可能没有权限".

1)因为我只运行一次mex功能并且已经终止了它的原因是什么?

2)如何在不重新启动Matlab的情况下覆盖旧的mex文件?

谢谢

cha*_*pjc 5

你需要运行:

 clear mex
Run Code Online (Sandbox Code Playgroud)

这将从内存中卸载所有MEX文件,以便您可以覆盖或删除文件.您也可以选择性地卸载MEX文件clear mexFileName.

要列出所有加载的MEX文件,请使用inmem如下,

[~,mexLoaded] = inmem('-completenames')
mexLoaded = 

    'C:\Program Files\MATLAB\R2013b\toolbox\matlab\winfun\winqueryreg.mexw64'
Run Code Online (Sandbox Code Playgroud)

请注意,如果以前锁定了某个功能mlock,则需要将其解锁,munlock否则将无法卸载.