Numo::NArray でドット積
require "numo/narray"
実数ベクトルのドット積
a = Numo::NArray[4, -1, 2]
b = [2, -2, -1]
c = a.dot b
8
複素数ベクトルのドット積
a = Numo::NArray[1+1i, 1-1i, -1+1i, -1-1i]
b = [3-4i, 6-2i, 1+2i, 4+3i]
c = a.conj.dot b
(1.0-5.0i)
複素数とそれ自身のドット積
d = a.conj.dot a
(8.0+0.0i)
行列のドット積
a = Numo::NArray[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
c = (a * b).sum(0)
Numo::Int64#shape=[3]
[54, 57, 54]
行ベクトルとしてドット積を求める
c = Numo::NArray[(a * b).sum(1)].transpose
Numo::Int64(view)#shape=[3,1]
[[46],
[73],
[46]]