在Matlab中初始化持久变量

时间:2014-05-27 14:35:02

标签: matlab persistent

我想在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 个答案:

答案 0 :(得分:1)

您正在将y初始化为标量。如果要将其初始化为空的零向量,请使用y=zeros(1,n),其中n是您希望它拥有的元素数。