Ваш код проверяет все значения t1 сразу и так же, как
if all(t1>=0)
y=1;
else if all(t1<0)
y=0;
end
end
Что вы хотите:
t1=-2:0.01:2;
y = zeros(size(t1));
y(t1>=0) = 1;
subplot(3,1,1)
plot(t1,y)
Другой (менее эффективный) способ сделать это:
t1=-2:0.01:2;
for index=1:length(t1)
if t1(index)>=0
y(index)=1;
else if t1(index)<0
y(index)=0;
end
end
end
subplot(3,1,1)
plot(t1,y)
Как указано в P0W, существует также функция тяжелой нагрузки, которая генерирует ступенчатые выходы, подобные вашим (хотя с t он равен 0,5 при 0). Однако функция тяжести доступна только в том случае, если у вас установлен символический набор инструментов.
FYI, что 'else if', вероятно, должно быть' elseif' - тогда вы можете удалить дополнительный 'end'. – horchler