julia - 如何在 Julia 中按元素应用函数?

标签 julia

有一个函数h(x) = ([1, x]' * [2, 3])[1]

假设我想绘制它并获得 XY。一种可能的方法是执行以下操作

X = [1 2 3]
Y = [h(xi) for xi in X]

但是,似乎也可以在 Julia 中使用元素运算符来执行相同的操作?

不幸的是,在函数前面加上点 .h(X) 不起作用。

最佳答案

更新:f.(x) 语法已合并并在 julia v0.5 中可用,请参阅 the documentWIP .

@vectorize_1arg在 julia's Base 中,可以使您的函数可以接受数组。用这个宏包裹你的 h 可能会解决问题。

这是来自 julia document 的示例

julia> square(x) = x^2
square (generic function with 1 method)

julia> @vectorize_1arg Number square
square (generic function with 4 methods)

julia> methods(square)
# 4 methods for generic function "square":
square{T<:Number}(::AbstractArray{T<:Number,1}) at operators.jl:380
square{T<:Number}(::AbstractArray{T<:Number,2}) at operators.jl:381
square{T<:Number}(::AbstractArray{T<:Number,N}) at operators.jl:383
square(x) at none:1

julia> square([1 2 4; 5 6 7])
2x3 Array{Int64,2}:
  1   4  16
 25  36  49

如果您正在寻找更“优雅”的方法,here is a discussion关于为这个问题添加新的语法。

关于julia - 如何在 Julia 中按元素应用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36349007/

相关文章:

statistics - Julia - describe() 函数显示不完整的汇总统计信息

julia - JuMP 非线性优化约束被打破到 O(1e-9)

jupyter-notebook - Jupyter 扩展的 Julia 用户是否仍然需要 Visual Studio Code Insiders?

julia - Julia 中的有理矩阵除法

dataframe - Julia - 选择以另一个数据帧中的列为条件的数据帧的子集

julia - 组织 Julia 源代码树的正确方法是什么?

nbconvert 中 Jupyter 中的 Julia DataFrame 输出错误

opengl - glMultiDrawElementsIndirect 很慢

julia - 具有相同变量类型的 julia 中的多次分派(dispatch)

twitter - 读取包含 Twitter 表情符号描述的文件