Main Content

mlock

防止从内存中清除函数或脚本

语法

说明

示例

mlock 将锁定当前正在内存中运行的函数。锁定函数可以防止 clear 将其从内存中删除,并防止对文件中定义的任何 persistent 变量进行重新初始化。

仅在 MATLAB® 代码文件中使用 mlock

要从内存中删除锁定的函数或脚本,请先使用 munlock 命令将其解锁,然后使用 clear 命令。

示例

全部折叠

在当前工作文件夹中创建 myFun 函数。

function myFun()
    persistent n
    if isempty(n)
        n = 0;
    end
    n = n+1
end

在命令提示符下,调用两次 myFun。每次调用该函数时,n 的值都会增加,因为它是 persistent

myFun
myFun
myFun
n =

     1


n =

     2


n =

     3

清除该函数并再次调用它两次。清除该函数会同时清除持久变量。

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

尝试清除该函数并再次调用它两次。由于 myFun 已锁定,清除该函数不会将其从内存中删除,也不会清除持久变量。

clear myFun
myFun
myFun
n =

     4


n =

     5

解锁 myFun,以便可以从内存中清除它。

munlock('myFun')

提示

  • 要锁定 MEX 文件,请使用 mexLock 函数。

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | |