Задайте постоянную переменную
persistent var1 ... varN объявляет переменные var1 ... varN как стойкий. Постоянные переменные локальны по отношению к функции, в которой они объявлены, но их значения сохраняются в памяти между вызовами функции. Код в MATLAB® командная строка и в других функциях не могут изменять постоянные переменные.
Когда MATLAB впервые встречается с конкретным persistent оператор инициализирует постоянную переменную в пустую матрицу ([]).
MATLAB очищает постоянные переменные, когда вы очищаете или изменяете функцию, которая находится в памяти. Чтобы сохранить функцию в памяти, используйте mlock.
Постоянные переменные аналогичны глобальным переменным, потому что MATLAB создает постоянное хранилище для обоих. Они отличаются от глобальных переменных, потому что постоянные переменные известны только функции, которая объявляет их. Поэтому код в командной строке MATLAB или других функциях не может изменять постоянные переменные.
Поскольку MATLAB инициализирует постоянную переменную в пустую матрицу ([]), обычно функции проверяют, является ли постоянная переменная пустой, и, если да, инициализируют ее.
function myFun() persistent n if isempty(n) n = 0; end n = n+1; end
Объявление переменной как постоянной должно предшествовать любым другим ссылкам на переменную, включая входные или выходные аргументы. Для примера, persistent объявления в следующих функциях недопустимы.
function myfunA(x) persistent x end function myfunB x = 0; persistent x end
Чтобы удалить постоянную переменную, используйте clear с именем функции, которая объявляет переменную. Для примера, clear myFun.