Eye

Статическая функция создаёт матрицу указанного размера с единицами в указанной диагонали и нулями за пределами диагонали. Возвращает матрицу с единицами по диагонали и нулями в остальных местах.

static matrix matrix::Eye(
  const ulong  rows,        // количество строк
  const ulong  cols,        // количество столбцов
  const int    ndiag=0      // индекс диагонали
   );

Параметры

rows

[in]  Количество строк на выходе.

cols

[in]  Количество столбцов на выходе.

ndiag=0

[in]  Индекс диагонали: 0 (по умолчанию) означает главную диагональ, положительное значение означает диагональ выше, а отрицательное — ниже.

Возвращаемое значение

Матрица, в которой все элементы равны нулю, кроме k-й диагонали, значения которой равны единице.

Пример на MQL5:

  matrix eye=matrix::Eye(33);
  Print("eye = \n"eye);
  
  eye=matrix::Eye(44,1);
  Print("eye = \n"eye);  
  /*
   eye = 
   [[1,0,0]
    [0,1,0]
    [0,0,1]]
   eye = 
   [[0,1,0,0]
    [0,0,1,0]
    [0,0,0,1]
    [0,0,0,0]]   
  */

Пример на Python:

np.eye(3, dtype=int)
array([[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1]])
 
np.eye(4, k=1)
array([[0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.],
       [0., 0., 0., 0.]])