假设我有一个分段函数foo(x),如果x <= 0则等于x,如果x> 0则等于log(x)。该函数接受向量作为参数。所以我尝试了以下方法:
function foo(x)
(x .<= 0) .* x + (x .> 0) .* log(x)
end
显然,当x <0时,这将不起作用,因为它会尝试评估所有内容(即使将其与0相乘。还有更好的方法吗?
谢谢!
答案 0 :(得分:2)
我认为这是您可以尝试的方法:
foo(x) = x > 0 ? log(x) : x
假定x
是标量。
然后如果v
是矢量,则只需像foo.(v)
这样广播它即可。