【问题标题】:How to overwrite an mexw32 without the need of restart Matlab?如何在不需要重启 Matlab 的情况下覆盖 mexw32?
【发布时间】:2013-11-02 04:25:05
【问题描述】:

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

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

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

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

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

谢谢

【问题讨论】:

    标签: matlab mex


    【解决方案1】:

    你需要运行:

     clear mex
    

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

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

    [~,mexLoaded] = inmem('-completenames')
    mexLoaded = 
    
        'C:\Program Files\MATLAB\R2013b\toolbox\matlab\winfun\winqueryreg.mexw64'
    

    请注意,如果某个功能之前通过mlock 锁定,则必须使用munlock 将其解锁,否则将无法卸载。

    【讨论】:

      猜你喜欢
      • 2015-07-20
      • 1970-01-01
      • 2013-01-30
      • 2013-04-18
      • 2019-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      相关资源
      最近更新 更多