如何在Julia中应用函数elementwise?
有一个函数如何在Julia中应用函数elementwise?,julia,Julia,有一个函数h(x)=([1,x]'*[2,3])[1] 假设我想要绘制它,得到X和Y。一种可能的方法是如下 X = [1 2 3] Y = [h(xi) for xi in X] 但是,在Julia中使用elementwise操作符似乎也可以做到同样的事情 不幸的是,在函数前面加上点.h(X)无效。更新:f.(X)语法已合并,可在julia v0.5中使用,请参阅或 在julia的Base中,可以使数组为函数所接受。使用此宏包装您的h,可能会解决此问题 这里有一个来自中国的例子 julia>s
h(x)=([1,x]'*[2,3])[1]
假设我想要绘制它,得到X
和Y
。一种可能的方法是如下
X = [1 2 3]
Y = [h(xi) for xi in X]
但是,在Julia中使用elementwise操作符似乎也可以做到同样的事情
不幸的是,在函数前面加上点
.h(X)
无效。更新:f.(X)
语法已合并,可在julia v0.5中使用,请参阅或
在julia的Base中,可以使数组为函数所接受。使用此宏包装您的h
,可能会解决此问题
这里有一个来自中国的例子
julia>square(x)=x^2
平方(带1方法的通用函数)
朱莉娅>@vectorize_1arg数字平方
square(具有4种方法的通用函数)
julia>方法(方形)
#通用函数“square”的4种方法:
正方形{TIsmap(h,X)
你在这里寻找什么?这是一个一般性的问题,还是你想为你的例子提供一个元素式的解决方案?我相信你的例子可以矢量化..但对于一般方法,map
是@niczky12建议的解决方案。是的,我问过一般方法。为Julia 1.X获得最新答案会很有用。
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