如何在Scilab中使用Octave / Matlab内联函数

时间:2015-03-08 14:28:38

标签: scilab

如何在Scilab中使用这个Octave / Matlab内联函数?

u = inline('t>=0') where t=0:0.001:1.
y = (u(t-0.2)-u(t-0.3)) 

我在Scilab中尝试了

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

但我收到的错误是"索引无效"在确定'。

1 个答案:

答案 0 :(得分:0)

与Matlab不同,调用(t>=0)会给你一个布尔向量,其条目为True或False。由于您需要1和0,因此需要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允许您在脚本中的任何位置显示此类功能。