---
source_url: https://docs.dolphindb.cn/zh/funcs/r/rowDot.html
fetched_at: 2026-05-19T09:37:01Z
category: funcs
title: rowDot
sha1: 14989c8d4e2a71b7393917947a932c922ac40f4e
---

# rowDot

## 语法

`rowDot(X, Y)`

## 详情

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

若 *X* 和 *Y* 一个为向量，一个为矩阵，则向量的长度必须与矩阵的列数相同，计算向量与矩阵每一行的内积。

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

若 *X* 和 *Y*
一个为向量，一个为数组向量，计算向量与数组向量内每个向量的内积。两个向量的长度相同时返回计算结果，长度不相同时返回 NULL。

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

## 参数

**X** 和 **Y** 是长度相同的数值型向量或数组向量，或维度相同的矩阵。若 *X* 和
*Y* 为数组向量，它们对应位置的向量必须具有相同长度。

## 返回值

一个向量。

## 例子

```dolphindb
rowDot(13.5 15.2 6.3, 18.6 14.8 15.5)
// output
[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)
// output
[244.4,349.44,234]

m=matrix(23 56 47, 112 94 59)
m1=matrix(11 15 89, 52 41 63)
rowDot(m,m1)
// output
[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)
// output
[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)
// output
[86.79,75,21.25]
```

相关函数：[dot](../d/dot.html)
