跳至主要內容

使用 Numo::NArray 計算點積

· 1 分鐘閱讀
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]]

コメント

読み込み中...

コメントを投稿する