如何使用 C 程式計算矩陣的轉置?


矩陣的轉置

矩陣的轉置是其行是原矩陣的列,即如果AB是兩個矩陣,使得矩陣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 迴圈來列印矩陣的轉置。

線上演示

#include <stdio.h>
int main(){
   int m, n, i, j, matrix[10][10], transpose[10][10];
   printf("Enter rows and columns :
"
);    scanf("%d%d", &m, &n);    printf("Enter elements of the matrix
"
);    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:
"
);    for (i = 0; i< n; i++) {       for (j = 0; j < m; j++)          printf("%d\t", transpose[i][j]);       printf("
"
);    }    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: 
"
);    // input matrix    for(i = 0; i < ROW; i++){       for(j = 0; j < COL; j++){          scanf("%d", &mat[i][j]);       }    }    // create transpose    for(i = 0; i < ROW; i++){       for(j = 0; j < COL; j++){          trans[j][i] = mat[i][j];       }    }    printf("
Transpose matrix:
"
);    // print transpose    for(i = 0; i < COL; i++){       for(j = 0; j < ROW; j++){          printf("%d ", trans[i][j]);       }       printf("
"
);    }    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

更新於: 2023 年 9 月 2 日

51K+ 次瀏覽

啟動您的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.