我想在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
答案 0 :(得分:1)
您正在将y
初始化为标量。如果要将其初始化为空的零向量,请使用y=zeros(1,n)
,其中n
是您希望它拥有的元素数。