2013-09-30 2 views
0

Я использую этот код для построения блока ступенчатой ​​функцииблок Plot шага, используя, если остальное условия

t1=-2:0.01:2; 

if t1>=0 
    y=1; 
else if t1<0 
    y=0; 

    end 

end 

subplot(3,1,1) 
plot(t1,y)` 

, но я не получает желаемое output.It замышляет нуль при у в каждой точке.

+2

FYI, что 'else if', вероятно, должно быть' elseif' - тогда вы можете удалить дополнительный 'end'. – horchler

ответ

3

Ваш код проверяет все значения 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). Однако функция тяжести доступна только в том случае, если у вас установлен символический набор инструментов.

+0

Вы забыли «тяжело» – P0W

Смежные вопросы