2016-08-09 8 views
7

मान लीजिए मैं f(x,y) = 2x + y करना तो map(f, [2,4,6],[1,1,1]) मैं मिल जाएगा:क्या मैं निश्चित इनपुट के साथ 'मानचित्र' का उपयोग कर सकता हूं?

3-element Array{Int64,1}: 
    5 
    9 
13 

अगर मैं map(f, [2,4,6],1), यानी, मुझे लगता है कि करने के लिए है कि दूसरी इनपुट हमेशा एक ही है चाहते हैं, मैं मिल जाएगा:

1-element Array{Any,1}: 
5 

तो यह काम नहीं करता है। क्या वेक्टर [1,1,1] कोडिंग किए बिना ऐसा करने का कोई तरीका है?

+0

यह संबंधित प्रश्न भी देखें जो निश्चित कीवर्ड तर्कों को कवर करता है: http://stackoverflow.com/questions/38906788/julia-passing-arguments-to-function-through-the-map-function –

उत्तर

8

प्रसारण "में कार्य करता है की तरह" यह सरणियों में परिवर्तन एक आकार जो काम करता है हो सकता है, और नक्शे:

broadcast(f, [2,4,6],1)

आउटपुट:

Int64[3] 
5 
9 
13 
+0

क्या प्रसारण के समानांतर समतुल्य है , pmap() के रूप में मानचित्र() है? –

+0

हो सकता है [यदि आप डेवलपर्स को यह बताते हैं कि आप यहां एक चाहते हैं] (https://github.com/JuliaLang/julia/issues/17887)। कुछ कार्यान्वयन विवरण हैं जिन्हें काम करने की आवश्यकता होगी ('नक्शा' को स्वतंत्र रनों के बीच डेटा साझा करने की आवश्यकता नहीं है, जबकि 'प्रसारण' को छोटे वेक्टर को कुछ अर्थों में साझा करने की आवश्यकता है), लेकिन अगर मेरे प्रस्ताव को पर्याप्त समर्थन मिलता है , वहां 'pbroadcast() 'होना चाहिए, और थ्रेडिंग के लिए' tbroadcast() 'जैसी चीजें भी होनी चाहिए। समस्या देखें। –

+0

बहुत बढ़िया। यह बहुत अच्छा होगा। मैं अपना प्लग डाल दूंगा। –

2

आप map(x->f(x,1), [2,4,6]) उपयोग कर सकते हैं यह पूरा करने के।

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

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