Juliaの学習
“dot”をつけて演算子をベクトル化

October 27, 2020 – 1:29 pm

Juliaを学習しているなかで”dot”付の演算子 .+ とか .^ にでくわした。

Juliaのマニュアル(Julia 1.5 Documentation)を、調べると、これはベクトル化演算子(Vectorized “dot” operators)と呼ばれるもの。

どうも、Julia特有のhもので、とても便利な構文のようだ。学習用テキストとして、最近、購入した「1から始めるJuliaプログラミング」には、全く触れられてない。(訂正: よく読んでみたら、「2.6.4 多次元配列の演算」に書かれている)。

この”dot”付演算子がどのように使われているのか、備忘録として、簡単にメモしておいた。

最初にでくわした“のが次のような演算式:

julia> f(x, y) = sum((x .- y).^2);

この演算式によって、Array x, yの要素それぞれに対し独立して、演算子 – そして ^ が適用されている。
具体的には、x, y が

x = [x1, x2, x3]
y = [y1, y2, y3]

と3要素のArrayだとすると、関数 sum() のなかの (x .- y).^2 は

[(x1-y1)^2, (x2-y2)^2, (x3-y3)^2]

になる。

上に示した .- とか .^ に限らず他の演算子についても同様。

任意の関数 f(x) についても関数名の後に”dot”をつけることによって、引数xがArrayだと、f.(x)というかたちをとることにより、Arrayの要素のそれぞれを関数 f の引数を要素とするArrayになる。
具体的には、xが

x = [x1,x2,x3]

という3要素のArrayだとすると、f.(x) は、

f.(x) ==> [f(x1), f(x2), f(x3)]

となる。

(注) Julia の version は、1.5.2
  


Post a Comment