在deff内编写分段函数

我正在使用deff在Scilab中定义分段函数。我使用if-else语句以不同的时间间隔定义函数。除this one以外,其他所有功能似乎都可以使用。

这是我的方法:

deff('a=f(p)',["if(q >= -2 & q <= -1) then"; "a=1"; "elseif(q >= 1 & q <= 2) then"; "a=-1"; "else"; "a=0"; "end";])

相同的方法可用于类似的功能,例如this

eff('a=f(p)',["if((p > 0 & p <= 2)) then"; "a=p/2"; "else"; "a=0"; "end";])

我对q的定义如下:

q = -3:Ts:3;

其中Ts是一些浮点数。我在做什么错了?

ipqydp 回答:在deff内编写分段函数

当输入是向量时,不能按原样使用函数。可能的解决方法是使用filter { grok { match => { "AIRCRAFTLAT" => "%{NUMBER:alat:float}" } } }

feval

另一种(更好的)解决方案是以向量化的方式对a = feval(q,f) 进行编码:

f

function a = f(q) a = 1*(q >= -2 & q <= -1) - 1*(q >= 1 & q <= 2) end 不是必需的,除非您需要更改值。

本文链接:https://www.f2er.com/3169934.html

大家都在问