当我在matlab中编写自己的mex函数时,我必须调试它并在matlab的工作区中运行它时多次检查mex函数。
每当我重建mexw32 / mexw64时,我需要在matlab环境中进一步测试之前用新构建的旧版本替换旧版本。
但是,如果我在覆盖旧版本之前没有重新启动Matlab,则始终会出现错误消息“复制文件时出错...,您可能没有权限”。
1)因为我只运行一次mex函数并且已经终止了它的原因是什么?
2)如何在不重新启动Matlab的情况下覆盖旧的mex文件?
由于
答案 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
解锁该功能,否则将无法卸载该功能。