TransposeConjugate

Транспонирование комплексной матрицы с сопряжением. Разворачивает или переставляет оси матрицы с изменением знака мнимой части комплексного числа, возвращает измененную матрицу.

matrixc matrixc::TransposeConjugate()

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

Транспонированная комплексно-сопряжённая матрица.

Примечание

Сопряженную функцию можно применять к вещественным (некомплексным) матрицам и векторам. В этом случае матрица или вектор просто копируются при возврате.

Простой алгоритм транспонирования комплексной матрицы с сопряжением — объяснение метода

//--- Функция транспонирования комплексной матрицы с сопряжением
matrixc MatrixTransposeConjugate(const matrixcmatrix_a)
  {
   //--- создаем новую матрицу matrix_c с размерами, обратными матрице matrix_a
   matrixc matrix_c(matrix_a.Cols(), matrix_a.Rows());
 
   //--- пройдем по всем строкам новой матрицы
   for(ulong i=0i<matrix_c.Rows(); i++)
     {
      //--- проходим по всем столбцам новой матрицы
      for(ulong j=0j<matrix_c.Cols(); j++)
        {
         //--- переносим вещественную часть элемента, транспонируя индекс
         matrix_c[i][j].real = matrix_a[j][i].real;
         //--- переносим мнимую часть элемента, меняя знак (сопряжение)
         matrix_c[i][j].imag = -matrix_a[j][i].imag;
        }
     }
 
    //--- возвращаем транспонированную с сопряжением матрицу
    return(matrix_c);
  }