2

matlab で独自の mex 関数を作成している場合、それをデバッグして、matlab のワークスペースで実行するときに mex 関数を何度もチェックする必要があります。

mexw32/mexw64 を再構築するたびに、matlab 環境でさらにテストする前に、古いものを新しいものに置き換える必要があります。

ただし、古いバージョンを上書きする前に Matlab を再起動しないと、「ファイルのコピー中にエラーが発生しました....権限がない可能性があります」というエラー メッセージが常に表示されます。

1) mex 関数を 1 回だけ実行し、既に終了しているため、理由は何ですか?

2) Matlab を再起動せずに古い mex ファイルを上書きするにはどうすればよいですか?

ありがとう

4

1 に答える 1

5

次を実行する必要があります。

 clear mex

これにより、すべての 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 に答える