2015-03-08 4 views

ответ

0

В отличие от Matlab, вызов (t>=0) дает вам логический вектор, его записи являются True или False. Так как вы хотите 1s и 0s, вам нужно bool2s конвертировать из булева до целых чисел:

deff('[u]=f(t)','u=bool2s(t>=0)') 

После этого вы можете вызвать функцию, как и любой другой:

t = 0:0.001:1 
y = u(t-0.2)-u(t-0.3) 
plot(t,y) 

plot

Лично я никогда не видят необходимости встроенных функций в Scilab. Если бы я писал выше, я бы объявить функцию, как правило:

function y = u(t) 
    y = bool2s(t>=0) 
endfunction 

В отличие от Matlab, Scilab позволяет иметь такие функции появляются везде, где вы хотите их в сценарии.

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