如何使用C程序计算矩阵的转置?

矩阵转置

矩阵的转置是其转置是原始矩阵的列的转置,即,如果A和B是两个矩阵,使得矩阵B的行是矩阵A的列,则矩阵B被称为矩阵的转置。矩阵A

将m(i,j)矩阵更改为的逻辑m(j,i)如下-

for (i = 0;i < m;i++)

   for (j = 0; j < n; j++)

      transpose[j][i] = matrix[i][j];

程序1

在此示例中,我们将使用 for loop打印矩阵的转置。

#include <stdio.h>

int main(){

   int m, n, i, j, matrix[10][10], transpose[10][10];

   printf("Enter rows and columns :\n");

   scanf("%d%d", &m, &n);

   printf("Enter elements of the matrix\n");

   for (i= 0; i < m; i++)

      for (j = 0; j < n; j++)

         scanf("%d", &matrix[i][j]);

   for (i = 0;i < m;i++)

      for (j = 0; j < n; j++)

         transpose[j][i] = matrix[i][j];

   printf("Transpose of the matrix:\n");

   for (i = 0; i< n; i++) {

      for (j = 0; j < m; j++)

         printf("%d\t", transpose[i][j]);

      printf("\n");

   }

   return 0;

}

输出结果
Enter rows and columns :

2 3

Enter elements of the matrix

1 2 3

2 4 5

Transpose of the matrix:

1    2

2    4

3    5

程序2

#include<stdio.h>

#define ROW 2

#define COL 5

int main(){

   int i, j, mat[ROW][COL], trans[COL][ROW];

   printf("Enter matrix: \n");

   // 输入矩阵

   for(i = 0; i < ROW; i++){

      for(j = 0; j < COL; j++){

         scanf("%d", &mat[i][j]);

      }

   }

   // 创建转置

   for(i = 0; i < ROW; i++){

      for(j = 0; j < COL; j++){

         trans[j][i] = mat[i][j];

      }

   }

   printf("\nTranspose matrix: \n");

   // 打印转置

   for(i = 0; i < COL; i++){

      for(j = 0; j < ROW; j++){

         printf("%d ", trans[i][j]);

      }

      printf("\n");

   }

   return 0;

}

输出结果
Enter matrix:

1 2 3 4 5

5 4 3 2 1

Transpose matrix:

1 5

2 4

3 3

4 2

5 1

以上是 如何使用C程序计算矩阵的转置? 的全部内容, 来源链接: utcz.com/z/344791.html

回到顶部