Инициализация персистентной переменной в Matlab
Я хочу использовать постоянную переменную внутри функционального блока matlab, но не могу ее инициализировать. Я хочу либо инициализировать его из m.file, либо сделать это внутри функции.
Если я использую isempty, тогда переменной присваивается размер 1x1, и я этого не хочу. По сути, я не знаю, как обрабатывать постоянное значение, так как оно принимается за 1x1 или не определено. Как я могу использовать isempty, но не дать ему размер 1x1? Или как я могу инициализировать его из m.file?
function y1 = fcn(u)
persistent y;
if isempty(y)
y=0;
end
for i=1:1:length(u)
if u(1,i) >=10
y(1,i) = 1;
elseif u(1,i) <= 5
y(1,i) = 0;
else
;
end
end
y1=y;
end
1 ответ
Решение
Вы инициализируете y
в скаляр. Если вы хотите инициализировать его пустым вектором нулей, используйте y=zeros(1,n)
где n
это количество элементов, которое вы хотите иметь.