2016-04-01 7 views
5

वहाँ एक समारोह h(x) = ([1, x]' * [2, 3])[1]जूलिया में तत्व को लागू करने के तरीके को कैसे लागू करें?

की मैं इसे साजिश और X और Y प्राप्त करना चाहते हैं लगता है चलो है। ऐसा करने का एक संभावित तरीका

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

लेकिन ऐसा लगता है कि जूलिया में एलिमेंट वार ऑपरेटर का उपयोग करना भी ऐसा ही संभव है?

दुर्भाग्य से डॉट .h(X) के साथ फ़ंक्शन को उपसर्ग करना काम नहीं करता है।

+5

क्या नक्शा (एच, एक्स) 'आप यहाँ क्या देख रहे हैं? – niczky12

+2

यह एक सामान्य प्रश्न है, या आप अपने उदाहरण के लिए एक तत्व के समाधान चाहते हैं? मेरा मानना ​​है कि आपका उदाहरण सदिश हो सकता है .. लेकिन सामान्य दृष्टिकोण के लिए 'मानचित्र' समाधान @ niczky12 के रूप में समाधान है। –

+0

हां, मैंने सामान्य दृष्टिकोण के बारे में पूछा है। –

उत्तर

11

अद्यतन: f.(x) वाक्य रचना विलय हो गया और जूलिया v0.5 में उपलब्ध, the document या WIP देखते हैं।

@vectorize_1arg जुलिआ बेस में आपके कार्यों द्वारा स्वीकार्य Arrays बना सकते हैं। इस मैक्रो के साथ समस्या को हल कर सकते हैं अपने 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 के बारे में इस समस्या के लिए नया व्याकरण जोड़ने है।

संबंधित मुद्दे