Инициализация персистентной переменной в 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 это количество элементов, которое вы хотите иметь.

Другие вопросы по тегам