Dot

两个向量的点积。

double vector::Dot(

  const vector&  b      // 第二个向量

   );

参数

b

[输入]  向量。

返回值

标量。

注意

两个矩阵的点积是矩阵乘积 matrix::MatMul()。

以 MQL5 实现的向量标量乘积的简单算法:

double VectorDot(const vector& vector_a, const vector& vector_b)

  {

   double dot=0;



   if(vector_a.Size()==vector_b.Size())

     {

      for(ulong i=0; i<vector_a.Size(); i++)

         dot+=vector_a[i]*vector_b[i];

     }



   return(dot);

  }

MQL5 示例:

   for(ulong i=0; i<rows; i++)

     {

      vector v1=a.Row(i);

      for(ulong j=0; j<cols; j++)

        {

         vector v2=b.Row(j);

         result[i][j]=v1.Dot(v2);

        }

     }

Python 示例:

import numpy as np



a = [1, 0, 0, 1]

b = [4, 1, 2, 2]

print(np.dot(a, b))



>>> 6