Inner

두 행렬의 내적.

matrix matrix::Inner(
  const matrix&  b      // second matrix
   );

매개 변수

b

[in]  Matrix.

반환값

행렬.

참조

두 벡터의 내적은 두 벡터 vector::Dot()의 내적입니다.

 

MQL5에서 두 행렬의 내적과 관련한 간단한 알고리즘:

bool MatrixInner(matrixcconst matrixaconst matrixb)
  {
//--- 열의 수는 같아야 합니다.
   if(a.Cols()!=b.Cols())
      return(false);
//--- 결과 행렬의 크기는 각 행렬의 벡터 수에 따라 다릅니다.
   ulong  rows=a.Rows();
   ulong  cols=b.Rows();
   matrix result(rows,cols);
//---
   for(ulong i=0i<rowsi++)
     {
      vector v1=a.Row(i);
      for(ulong j=0j<colsj++)
        {
         vector v2=b.Row(j);
         result[i][j]=v1.Dot(v2);
        }
     }
//---
   c=result;
   return(true);
  }

 

MQL5 예:

   matrix a={{0,1,2},{3,4,5}};
   matrix b={{0,1,2},{3,4,5},{6,7,8}};
   matrix c=a.Inner(b);
   Print(c);
   matrix a1={{0,1,2}};
   matrix c1=a1.Inner(b);
   Print(c1);
 
  /*
  [[5,14,23]
  [14,50,86]]
  [[5,14,23]]
  */

 

파이썬 예:

import numpy as np
 
A = np.arange(6).reshape(23)
B = np.arange(9).reshape(33)
A1np.arange(3)
print(np.inner(AB))
print("");
print(np.inner(A1B))
 
import numpy as np
 
A = np.arange(6).reshape(23)
B = np.arange(9).reshape(33)
A1np.arange(3)
print(np.inner(AB))
print("");
print(np.inner(A1B))