mlock

Предотвратите очищающуюся функцию или скрипт из памяти

Синтаксис

mlock

Описание

пример

mlock блокирует в настоящее время рабочую функцию в памяти. Блокировка функции препятствует тому, чтобы clear удалил его из памяти и предотвращает реинициализацию любых переменных persistent, заданных в файле.

Используйте mlock только в файле кода MATLAB®.

Чтобы удалить заблокированную функцию или скрипт из памяти, сначала разблокируйте его с помощью команды 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

Была ли эта тема полезной?