rowDot

New in version 2.00.5.

语法

rowDot(X, Y)

参数

XY 是长度相同的数值型向量/数组向量,或维度相同的矩阵。若 XY 为数组向量,它们对应位置的向量必须具有相同长度。

详情

XY 同时为向量/矩阵,按行计算 XY 的内积。若 XY 同时为索引矩阵,会对齐标签,对标签相同的行进行计算,标签不同的行直接返回NULL。

XY 一个为向量,一个为矩阵,则向量的长度必须与矩阵的列数相同,计算向量与矩阵每一行的内积。

XY 是数组向量,计算 XY 对应位置的向量的内积,即 dot(X.row(i),Y.row(i))。

XY 一个为向量,一个为数组向量,计算向量与数组向量内每个向量的内积。两个向量的长度相同时返回计算结果,长度不相同时返回NULL。

与所有其它聚合函数一致,计算时忽略 NULL 值。

例子

$ rowDot(13.5 15.2 6.3, 18.6 14.8 15.5)
[251.1,224.96,97.65]

$ s1=indexedSeries(2020.01.01..2020.01.03, 10.4 11.2 9)
$ s2=indexedSeries(2020.01.01 2020.01.03 2020.01.04, 23.5 31.2 26)
$ rowDot(s1,s2)
[244.4,349.44,234]

$ m=matrix(23 56 47, 112 94 59)
$ m1=matrix(11 15 89, 52 41 63)
$ rowDot(m,m1)
[6077,4694,7900]

$ m.rename!(2020.01.01..2020.01.03, `A`B)
$ m.setIndexedMatrix!()
$ m1.rename!(2020.01.01 2020.01.03 2020.01.04, `A`B)
$ m1.setIndexedMatrix!()
$ rowDot(m,m1)
[6077,NULL,3124,NULL]

$ a=array(DOUBLE[],0,10)
$ a.append!([[10.5, 11.8, 9],[15, NULL], [2.5, 2.2, 1.3, 1.5]])
$ b=array(DOUBLE[],0,10)
$ b.append!([[1.1, 1.8, 6],[5, 6.9], [3.5, 2, 3, 2.8]])
$ rowDot(a,b)
[86.79,75,21.25]

相关函数:dot