2015-01-02 6 views
1

У меня есть единичная функция шага:Используйте более «естественную» форму для управления кусочно-ступенчатыми функциями в Matlab MuPAD?

u0:= piecewise([-infinity < t and t < 0,0],[0 < t and t < infinity,1]): 

Теперь я хочу, чтобы построить его в какой-то момент:

T:=1:; 
plot(u0|t=t-T/2); 

Это работает. Но когда я использую более естественное выражение:

T:=1:; 
plot(u0(t-T/2)); 

он просто изображает первоначальную функцию шага без сдвига.

Можно ли использовать более простую форму при построении модифицированной функции шага?

ответ

1

Я считаю, что причина, что вы называете «более естественной формой», не работает, потому что u0 не был определен как MuPad function/procedure. В этом случае, вы можете создать процедуру с помощью -> operator:

u0 := t -> piecewise([-infinity < t and t < 0, 0], [0 < t and t < infinity, 1]): 

Обратите внимание, что выше эквивалентно u0 := t -> piecewise([t < 0, 0],[t > 0, 1]): (я предполагаю, что вы знаете, что вы оставили 0 не определены). Тогда вы должны быть в состоянии оценить:

T := 1: 
plot(u0(t-T/2)) 

Поскольку u0 теперь является функцией, ваш первый вид с помощью evalAt оператора, |, должен быть изменен на:

T := 1: 
plot(u0(t)|t=t-T/2)