2014-05-14 8 views
6

मान लीजिए कि मैं एक बहुआयामी सरणी बनाना चाहता हूं जिसका आयाम/आकार प्रति आयाम किसी सरणी में निर्दिष्ट है। मैं ऐसा कुछ करना चाहता हूं:जूलिया: आयामों की सरणी के साथ ऐरे() को कॉल करना

dims = [2,5,6] # random example, the idea is I don't know dims ahead of time 
arr = Array(Float64, dims) 

इसकी अनुमति नहीं है। ऊपर मामले में एक का उपयोग करना चाहिए:

arr = Array(Float64, dims[1], dims[2], dims[3]) 

मैं समय से आगे के लिए मंद की लंबाई पता नहीं है, इसलिए ऊपर समाधान मेरे लिए काम नहीं करता। क्या कुछ बुरा स्प्रिंट्स और eval का उपयोग करने के बाहर एक साफ कामकाज है?

धन्यवाद!

+0

आप आमतौर पर जुलिआ में eval के साथ sprintf का उपयोग नहीं करते हैं। मेटाप्रोग्रामिंग के लिए बहुत बेहतर विकल्प हैं। – ivarne

उत्तर

10

जूलिया में याद रखने के लिए वास्तव में उपयोगी ऑपरेटर "स्प्लट", ... है। इस मामले में आप बस चाहते हैं:

arr = Array(Float64, dims...) 
संबंधित मुद्दे