2016-08-06 13 views
4

配列の1次元で合計を行いたいとします。それは簡単です。配列について9x100x100配列の次元の合計

しかし、残っているものは1x100x100の寸法の配列です。そして今、私は最初のディメンションを取り除きたいと思っています。なぜなら1つの要素しか残っていないからです。だから私の解決策はちょうどです:

reshape(summed_array, 100,100) 

私は望んでいた100x100の配列を取得します。 しかし、これはあまりきれいに感じません。これを達成するより良い方法はありますか?あなたはsqueezeを探している

+2

関連:http://stackoverflow.com/q/36524298/2541573 – Jubobs

答えて

9

squeeze(A, dims)

配列Aから暗くなることにより、指定された寸法を削除します。 dimsの要素は一意で、1:ndims(A)の範囲内である必要があります。

julia> a = rand(4,3,2) 
4x3x2 Array{Float64,3}: 
[:, :, 1] = 
0.333543 0.83446 0.659689 
0.927134 0.885299 0.909313 
0.183557 0.263095 0.741925 
0.744499 0.509219 0.570718 

[:, :, 2] = 
0.967247 0.90947 0.715283 
0.659315 0.667984 0.168867 
0.120959 0.842117 0.217277 
0.516499 0.60886 0.616639 

julia> b = sum(a, 1) 
1x3x2 Array{Float64,3}: 
[:, :, 1] = 
2.18873 2.49207 2.88165 

[:, :, 2] = 
2.26402 3.02843 1.71807 

julia> c = squeeze(b, 1) 
3x2 Array{Float64,2}: 
2.18873 2.26402 
2.49207 3.02843 
2.88165 1.71807