【发布时间】:2020-09-21 15:16:38
【问题描述】:
例如,对于向量的每个元素,我想计算残差与该向量的其他元素的总和。这适用于一个元素:
a = [1, 2, 5, 7, 8, 22]
f(x) = sum(abs.(x .- a))
f(2)
Out: 35
但是如果使用 map() 将此函数应用于所有元素,Julia 会返回错误:
map(a, f)
Out: "MethodError: no method matching iterate(::typeof(f))"
在 R 中,这很容易使用 sapply():
a = c(1, 2, 5, 7, 8, 22)
sapply(a, function(x) sum(abs(x - a)))
Out: 39 35 29 29 31 87
在 Julia 中是否有同样优雅的方式来做到这一点?
【问题讨论】:
-
总结以下答案:在 Julia 中有一种同样优雅的方式来做到这一点,但也是一种更优雅的方式:)