2015-02-15 10 views
11

में शामिल करें मैं एक खाली वेक्टर बनाना चाहता हूं और इसे जूलिया में एक सरणी में जोड़ना चाहता हूं। मैं उसको कैसे करू?जूलिया: एक खाली वेक्टर

x = Vector{Float64} 
append!(x, rand(10)) 

परिणामों में

`append!` has no method matching append!(::Type{Array{Float64,1}}, ::Array{Float64,1}) 

धन्यवाद।

उत्तर

16

आपकी चर x में कोई सरणी नहीं है लेकिन एक प्रकार है। या zeros(Float64, n), जहां n वांछित आकार है:

x = Vector{Float64} 
typeof(x) # DataType 

आप Array(Float64, n) के रूप में एक सरणी बना सकते हैं (यह मनमाने ढंग से मान हैं लेकिन सावधान रहना, यह अप्रारंभीकृत है)।

चूंकि Float64 डिफ़ॉल्ट है, हम इसे छोड़ सकते हैं। आपका उदाहरण बन जाता है:

x = zeros(0) 
append!(x, rand(10)) 
+0

आप इसे 2 डी सरणी में कैसे बढ़ाते हैं? उदाहरण के लिए मेरे पास कई प्रकार के ऐरे {Float64,2} हैं जो मैं एक ही प्रकार की रिक्त सरणी में जोड़ना चाहता हूं लेकिन मुझे त्रुटि मिल रही है 'त्रुटि: विधि त्रुटि:' संलग्न करें! 'में कोई विधि मिलान नहीं है! (:: ऐरे {Float64,2}, :: ऐरे {Float64,2}) '। – lara

6

आप [] के सामने प्रकार टाइप करके किसी भी प्रकार की एक खाली वेक्टर प्रारंभ कर सकते हैं। पसंद:

Float64[] # Returns what you want 
Array{Float64, 2}[] # Vector of Array{Float64,2} 
Any[] # Can contain anything