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

时间:2013-11-02 04:25:05

标签: matlab mex

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

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

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

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

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

由于

1 个答案:

答案 0 :(得分:5)

您需要运行:

 clear mex

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

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

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

    'C:\Program Files\MATLAB\R2013b\toolbox\matlab\winfun\winqueryreg.mexw64'

请注意,如果以前通过mlock锁定某项功能,则需要使用munlock解锁该功能,否则将无法卸载该功能。