Boyutun kendisi bir değişken olduğunda, bir dizinin belirli bir boyut boyunca bir kısmının nasıl çıkarılacağını (Julia'da) anlamaya çalışıyorum. Boyut biliniyorsa, bir dizinin bir bölümünü çıkarmak kolaylaşır.Julia: Belirtilen bir boyut boyunca bir dizinin bir kısmını nasıl ayıklamak
A = rand(27,33,11)
A_portion = A[:,:,3:7]
değişken boyut boyunca dizisinin bir kısmını çıkarmak için bir kompakt/etkili bir yöntem vardır: Örneğin, böyle bir şey yaparak 3 boyutu boyunca bir kısmını çıkarmak için? Örneğin, böyle görünen bir şey?
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)
bir olanak kısmını çıkarmak için hangi boyunca ve boyut (bazı maksimum boyut sayısı kadar) dizi boyutunun her türlü kombinasyonu için ise-tabloların bir dizi yazmak. Örneğin, böyle bir şey:
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çıkçası bu boyutların çok sayıda Dizilerin için izin vermek için oldukça dağınık hale gelir. Bunu yapmak için daha kompakt/verimli bir yaklaşım var mı?
Mükemmel. Bir dizi indeksi belirtmek bile mümkün gibi görünüyor: A_portion = dilimlenmiş (A, dim, first_element: last_element) ' – Landon