まぃふぇいばりっと

機械学習やってます.Julia大好きです.勉強したことの殴り書きです.

Julia言語 テンソルの添え字集合をつくる

自然数nに対して,[n] = {1, 2, …, n} として,[I]×[J]×[K]が欲しい時ととかってあるじゃないですか.テンソルの添え字でloop作りたいときとか.そういうときは,IterToolsproductを使うとよいことに気が付いた.

using IterTools

I = 2
J = 3
K = 2

for idx in product(1:I, 1:J, 1:K)
    print(idx)
end

これで

(1, 1, 1)
(2, 1, 1)
(1, 2, 1)
(2, 2, 1)
(1, 3, 1)
(2, 3, 1)
(1, 1, 2)
(2, 1, 2)
(1, 2, 2)
(2, 2, 2)
(1, 3, 2)
(2, 3, 2)

を得る.もっと早く知りたかった.

github.com

強い人に CartesianIndices((I,J,K))でできることも教わった.

Cartesian index · GitHub