mlock
関数やスクリプトがメモリからクリアされるのを防止
構文
説明
mlock
はメモリ内で現在実行中の関数をロックします。関数をロックすると、clear
によるメモリからの削除ができなくなり、またファイル内で定義されているどの persistent
変数も再初期化できなくなります。
mlock
は MATLAB® コード ファイル内でのみ使用します。
ロックされている関数またはスクリプトをメモリから削除するには、まず munlock
コマンドを使用してロックを解除し、その後に clear
コマンドを使用します。
例
永続変数をもつ関数のロック
現在の作業フォルダー内に関数 myFun
を作成します。
function myFun() persistent n if isempty(n) n = 0; end n = n+1 end
コマンド プロンプトで myFun
を 2 回呼び出します。n
は persistent
なので、この関数を呼び出すたびに値が増加します。
myFun myFun myFun
n = 1 n = 2 n = 3
この関数をクリアして、さらに 2 回呼び出します。関数をクリアすると永続変数もクリアされます。
clear myFun
myFun
myFun
n = 1 n = 2
関数 myFun
を編集して、mlock
の呼び出しを含めます。
function myFun() mlock persistent n if isempty(n) n = 0; end n = n+1 end
コマンド プロンプトで myFun
を 3 回呼び出します。
myFun myFun myFun
n = 1 n = 2 n = 3
この関数をクリアしてさらに 2 回呼び出すよう試みます。myFun
はロックされているため、関数をクリアしてもメモリから削除されず、永続変数もクリアされません。
clear myFun
myFun
myFun
n = 4 n = 5
myFun
のロックを解除して、メモリからクリアできるようにします。
munlock('myFun')
ヒント
MEX ファイルをロックするには、関数
mexLock
を使用します。
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2006a より前に導入
参考
mislocked
| munlock
| inmem
| persistent
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)