矩阵转置

矩阵转置是指矩阵的行列互换,记作$A^T$,定义为:

\[ A^T = [a_{ij}]_{m\times n} = \left[ \begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{array} \right] \]

即为: 对每一个i,j,将矩阵A的第i行的元素与第j列的元素进行交换。

示例代码(C语言)

// 假设我们有一个矩阵 A,我们需要计算它的转置矩阵。
void transpose(int m, int n, double A[m][n], double AT[n][m]) {
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            AT[j][i] = A[i][j];
        }
    }
}

原地转置

void transpose(int m, int n, double A[m][n]) {
    for (int i = 0; i < m; i++) {
        for (int j = i + 1; j < n; j++) {
            double temp = A[i][j];
            A[i][j] = A[j][i];
            A[j][i] = temp;
        }
    }
}