birisi basit terimlerle Julia'nın v0.4 fonksiyonu arasındaki fark içinde açıklayabilir misiniz dilim fonksiyonu vs alt:Julia dil:
sub ve slice (ve belki slicedim)
Bazı basit bir örnek ölçüde olacağını appriciated. Çok teşekkürler
birisi basit terimlerle Julia'nın v0.4 fonksiyonu arasındaki fark içinde açıklayabilir misiniz dilim fonksiyonu vs alt:Julia dil:
sub ve slice (ve belki slicedim)
Bazı basit bir örnek ölçüde olacağını appriciated. Çok teşekkürler
fark sub
sık sık korur iken slice
, bir skaler (non-vektör) ile "dilimlenmiş" tüm boyutları düşer olmasıdır. Örneğin:
julia> A = rand(3,3)
3x3 Array{Float64,2}:
0.403464 0.229403 0.924686
0.953741 0.175086 0.49139
0.0290678 0.705564 0.567355
julia> a = slice(A, 2, :) # this will be 1-dimensional
3-element SubArray{Float64,1,Array{Float64,2},(Int64,Colon),2}:
0.953741
0.175086
0.49139
julia> b = sub(A, 2, :) # this will be 2-dimensional
1x3 SubArray{Float64,2,Array{Float64,2},(UnitRange{Int64},Colon),2}:
0.953741 0.175086 0.49139
julia> size(a)
(3,)
julia> size(b)
(1,3)
bir istisna vardır:
julia> a = slice(A, :, 2)
3-element SubArray{Float64,1,Array{Float64,2},(Colon,Int64),2}:
0.229403
0.175086
0.705564
julia> b = sub(A, :, 2)
3-element SubArray{Float64,1,Array{Float64,2},(Colon,Int64),2}:
0.229403
0.175086
0.705564
julia> size(a)
(3,)
julia> size(b)
(3,)
: a vektörü ile endeksli en geç boyut olduğunu, yani onlar boyutları "sondaki" olan eğer bir sayısal alan ile endeksli boyutları düşer sub
Eğer bir dizi ile slice
, o zaman sub
gibi davranış olsun:
julia> a = slice(A, 2:2, :)
1x3 SubArray{Float64,2,Array{Float64,2},(UnitRange{Int64},Colon),1}:
0.953741 0.175086 0.49139
julia> size(a)
(1,3)
Önemli olan dizinin uzunluğu değil, türü: Skaler olmayan dizinlenmiş herhangi bir boyut korunur.
** Bir aralıkla dilimlenirseniz, alt ** gibi davranışlar elde edersiniz. Dilim ile yapılamayan 'sub' ile herhangi bir ek işlevsellik var mı? Ya da her koşulda alt kelimeyi değiştirebilir. – user3426681