के साथ किसी सरणी के हिस्से को निकालने का तरीका मैं एक निर्दिष्ट आयाम के साथ सरणी के एक हिस्से को निकालने का तरीका (जूलिया में) को समझने की कोशिश कर रहा हूं, जब आयाम स्वयं एक चर है। यदि आयाम ज्ञात है तो यह सरणी के एक हिस्से को निकालने के लिए सीधा है।जूलिया: निर्दिष्ट आयाम
A = rand(27,33,11)
A_portion = A[:,:,3:7]
वहाँ एक चर आयाम में एक सरणी के एक हिस्से को निकालने के लिए एक कॉम्पैक्ट/कुशल पद्धति है: उदाहरण के लिए, मैं कुछ इस तरह करने से 3 आयाम में एक हिस्से को निकाल सकते हैं? उदाहरण के लिए, ऐसा कुछ ऐसा दिखता है?
A = rand(27,33,11)
dim = 3 ## dimension along which to grab a portion of the array
first_element = 3 ## first element over specified dimension
last_element = 7 ## last element over specified dimension
A_portion = MyFunction(A,dim,first_sample,last_sample)
एक संभावना और आयाम है जो साथ भाग निकालने के लिए (आयामों के कुछ अधिकतम संख्या तक) सरणी आयाम के हर संभव संयोजन के लिए अगर-विवरणों के एक सेट में लिखने के लिए है। उदाहरण के लिए, कुछ इस तरह:
MyFunction(A::Array,dim::Int,first_element::Int,last_element::Int)
if ndims(A)==1 && dim==1
return A[first_element:last_element]
elseif ndims(A)==2 && dim==1
return A[first_element:last_element,:]
elseif ndims(A)==2 && dim==2
return A[:,first_element:last_element]
elseif ndims(A)==3 && dim==1
...
...
...
जाहिर है इस क्रम में काफी गंदा आयामों की बड़ी संख्या के साथ सरणियों के लिए अनुमति देने के लिए हो जाता है। क्या ऐसा करने के लिए कोई और कॉम्पैक्ट/कुशल दृष्टिकोण है?
उत्कृष्ट। ऐसा लगता है कि सूचकांक की एक श्रृंखला निर्दिष्ट करना भी संभव है: 'A_portion = slicedim (ए, मंद, first_element: last_element) ' – Landon