首页 > 解决方案 > 匿名函数 Julia - x 的值

问题描述

我不明白 x 是从哪里初始化的,因为它在接下来的比较中使用。

我尝试显示xor的值a

我有这个代码:

a = x -> ifelse(ε > x, 1, ifelse(ε < -x, -1, 0))
println(a)

x 之前未初始化 - 这段代码是什么?x 是随机数normal distribution,均值为 0?

标签: juliajupyter

解决方案


这是您所指的代码的简化版本:

θ = zeros(1000) # or some other vector
ε = randn()
sum(x -> ifelse(ε > x, 1, ifelse(ε < -x, -1, 0)), θ)

现在x -> ifelse(ε > x, 1, ifelse(ε < -x, -1, 0))定义一个匿名函数,它接受一个参数x-1如果x小于则返回1如果大于ε则返回0

然后sumJulia 中的函数方法之一接受两个参数,一个函数和一个集合。它的工作方式是将匿名函数x -> ifelse(ε > x, 1, ifelse(ε < -x, -1, 0))应用于每个元素θ并计算返回值的总和。

编辑

或者,您可以定义此代码,例如

sum(ifelse(ε > x, 1, ifelse(ε < -x, -1, 0)) for x in θ)

推荐阅读