如何在 Scilab 中使用 Octave/Matlab 内联函数
How to use Octave/Matlab Inline function in 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)')
但是我在确定 'y' 时收到一个错误 "invalid index"。
与在 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 允许您在脚本中的任何位置显示此类函数。
如何在 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)')
但是我在确定 'y' 时收到一个错误 "invalid index"。
与在 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 允许您在脚本中的任何位置显示此类函数。