如何在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)')
但我收到的错误是"索引无效"在确定'。
答案 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)
就个人而言,我从未发现Scilab需要内联函数。如果我正在编写上述内容,我会正常声明该函数:
function y = u(t)
y = bool2s(t>=0)
endfunction
与Matlab不同,Scilab允许您在脚本中的任何位置显示此类功能。