2013-11-02 29 views
2

當我在matlab中編寫我自己的mex函數時,我必須調試它,並在matlab的工作空間中運行它時多次檢查mex函數。如何覆蓋mexw32而不需要重新啓動Matlab?

每當我重建mexw32/mexw64時,我需要在matlab環境下進一步測試之前用新構建的舊構件替換舊構件。

但是,如果在覆蓋舊版本之前未重新啓動Matlab,將始終存在錯誤消息「錯誤複製文件...,您可能沒有權限」。

1)什麼原因,因爲我只運行一次mex函數並且已經終止它?

2)如何在不重新啓動Matlab的情況下覆蓋舊的mex文件?

感謝

回答

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來解鎖,否則將不被卸載。

相關問題