2

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

每次重建 mexw32/mexw64 时,我需要用新构建的替换旧的,然后在 matlab 环境中进一步测试。

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

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

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

谢谢

4

1 回答 1

5

你需要运行:

 clear mex

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

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

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

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

请注意,如果某个功能之前已通过 锁定mlock,则必须使用 解锁它,munlock否则将不会被卸载。

于 2013-11-02T04:36:52.430 回答