exponenta event banner

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