TransposeConjugate

複素行列を共役転置します。複素数行列の虚部の符号を変えることで、行列の軸を反転または置換し、修正された行列(共役転置行列)を返します。

matrixc matrixc::TransposeConjugate()

戻り値

複素行列の共役転置。

注意事項

共役は、複素数行列だけでなく、実数行列やベクトルにも適用できます。実数行列やベクトルの場合、単にコピーされて返されます。

複素行列の共役転置の簡単なアルゴリズムの説明

//--- 共役転置を行う複素行列関数
matrixc MatrixTransposeConjugate(const matrixc& matrix_a)
 {
  //--- 元の行列の行数と列数を逆にした新しい行列matrix_cを作成
  matrixc matrix_c(matrix_a.Cols(), matrix_a.Rows());
 
  //--- 新しい行列のすべての行を走査
  for(ulong i=0; i<matrix_c.Rows(); i++)
    {
    //--- 新しい行列のすべての列を走査
    for(ulong j=0; j<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);
 }