برنامه محاسبه ترانهاده ماتریس — به زبان ساده

۲۳۵۳ بازدید
آخرین به‌روزرسانی: ۱۹ اردیبهشت ۱۴۰۲
زمان مطالعه: ۸ دقیقه
برنامه محاسبه ترانهاده ماتریس — به زبان ساده

در مطلب «ترانهاده ماتریس — به زبان ساده» مفهوم ماتریس ترانهاده یا ترانهاده ماتریس (Matrix Transpose) بیان و روش محاسبه آن تشریح شده است. در این مطلب، روش نوشتن برنامه محاسبه ترانهاده ماتریس بیان و پیاده‌سازی آن در زبان‌های برنامه‌نویسی گوناگون شامل ++C، «جاوا» (Java)، «پایتون» (Python)، «سی‌شارپ» (#C) و «پی‌اچ‌پی» (PHP) انجام شده است. ترانهاده یک ماتریس با تغییر سطرها به ستون‌ها وستون‌ها به سطرها به دست می‌آید.

برنامه محاسبه ترانهاده ماتریس

در انیمیشن زیر نیز روش محاسبه ترانهاده ماتریس نمایش داده شده است:

برنامه محاسبه ترانهاده ماتریس

به عبارت دیگر، ترانهاده ماتریس []A با تغییر [A[i][j به [A[j][i محاسبه می‌شود. برنامه زیر، ترانهاده ماتریس [][]A را پیدا و نتیجه را در [][]B ذخیره می‌کند. می‌توان N را برای ابعاد گوناگون تغییر داد.

برنامه محاسبه ترانهاده ماتریس در ++C

1#include <stdio.h> 
2#define N 4 
3  
4// This function stores transpose of A[][] in B[][] 
5void transpose(int A[][N], int B[][N]) 
6{ 
7    int i, j; 
8    for (i = 0; i < N; i++) 
9        for (j = 0; j < N; j++) 
10            B[i][j] = A[j][i]; 
11} 
12  
13int main() 
14{ 
15    int A[N][N] = { {1, 1, 1, 1}, 
16                    {2, 2, 2, 2}, 
17                    {3, 3, 3, 3}, 
18                    {4, 4, 4, 4}}; 
19  
20    int B[N][N], i, j; 
21  
22    transpose(A, B); 
23  
24    printf("Result matrix is \n"); 
25    for (i = 0; i < N; i++) 
26    { 
27        for (j = 0; j < N; j++) 
28           printf("%d ", B[i][j]); 
29        printf("\n"); 
30    } 
31  
32    return 0; 
33}

برنامه محاسبه ترانهاده ماتریس در جاوا

1// Java Program to find  
2// transpose of a matrix 
3  
4class GFG 
5{ 
6    static final int N = 4; 
7      
8    // This function stores transpose 
9    // of A[][] in B[][] 
10    static void transpose(int A[][], int B[][]) 
11    { 
12        int i, j; 
13        for (i = 0; i < N; i++) 
14            for (j = 0; j < N; j++) 
15                B[i][j] = A[j][i]; 
16    } 
17      
18    // Driver code 
19    public static void main (String[] args) 
20    { 
21        int A[][] = { {1, 1, 1, 1}, 
22                      {2, 2, 2, 2}, 
23                      {3, 3, 3, 3}, 
24                      {4, 4, 4, 4}}; 
25      
26        int B[][] = new int[N][N], i, j; 
27      
28        transpose(A, B); 
29      
30        System.out.print("Result matrix is \n"); 
31        for (i = 0; i < N; i++) 
32        { 
33            for (j = 0; j < N; j++) 
34            System.out.print(B[i][j] + " "); 
35            System.out.print("\n"); 
36        } 
37    } 
38} 
39  
40// This code is contributed by Anant Agarwal. 

برنامه محاسبه ترانهاده ماتریس در پایتون ۳

1# Python3 Program to find 
2# transpose of a matrix 
3  
4N = 4
5   
6# This function stores 
7# transpose of A[][] in B[][] 
8  
9def transpose(A,B): 
10  
11    for i in range(N): 
12        for j in range(N): 
13            B[i][j] = A[j][i] 
14  
15# driver code 
16A = [ [1, 1, 1, 1], 
17    [2, 2, 2, 2], 
18    [3, 3, 3, 3], 
19    [4, 4, 4, 4]] 
20   
21   
22B = [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]] # To store result  
23  
24transpose(A, B) 
25   
26print("Result matrix is") 
27for i in range(N): 
28    for j in range(N): 
29        print(B[i][j], " ", end='') 
30    print() 
31      
32# This code is contributed 
33# by Anant Agarwal.

برنامه محاسبه ترانهاده ماتریس در #C

1// C# Program to find  
2// transpose of a matrix 
3using System; 
4  
5class GFG 
6{ 
7    static int N = 4; 
8      
9    // This function stores transpose 
10    // of A[][] in B[][] 
11    static void transpose(int [,]A, int [,]B) 
12    { 
13        int i, j; 
14        for (i = 0; i < N; i++) 
15            for (j = 0; j < N; j++) 
16                B[i,j] = A[j,i]; 
17    } 
18      
19    // Driver code 
20    public static void Main () 
21    { 
22        int [,]A = { {1, 1, 1, 1}, 
23                     {2, 2, 2, 2}, 
24                     {3, 3, 3, 3}, 
25                     {4, 4, 4, 4}}; 
26      
27        int [,]B = new int[N,N]; 
28          
29        // Function calling 
30        transpose(A, B); 
31      
32        Console.Write("Result matrix is \n"); 
33        for (int i = 0; i < N; i++) 
34        { 
35            for (int j = 0; j < N; j++) 
36            Console.Write(B[i,j] + " "); 
37            Console.Write("\n"); 
38        } 
39    } 
40} 
41  
42// This code is contributed by nitin mittal.

برنامه محاسبه ترانهاده ماتریس در PHP

1<?php 
2  
3// This function stores transpose  
4// of A[][] in B[][] 
5function transpose(&$A, &$B) 
6{ 
7    $N = 4; 
8    for ($i = 0; $i < $N; $i++) 
9        for ($j = 0; $j < $N; $j++) 
10            $B[$i][$j] = $A[$j][$i]; 
11} 
12  
13// Driver code 
14$A = array(array(1, 1, 1, 1), 
15           array(2, 2, 2, 2), 
16           array(3, 3, 3, 3), 
17           array(4, 4, 4, 4)); 
18  
19$N = 4; 
20  
21transpose($A, $B); 
22  
23echo "Result matrix is \n"; 
24for ($i = 0; $i < $N; $i++) 
25{ 
26    for ($j = 0; $j < $N; $j++) 
27    { 
28        echo $B[$i][$j]; 
29        echo " "; 
30    } 
31    echo "\n"; 
32} 
33  
34// This code is contributed 
35// by Shivi_Aggarwal  
36?>

خروجی قطعه کدهای بالا، به صورت زیر است.

Result matrix is
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

برای ماتریس مربعی، می‌توان از برنامه‌هایی که در ادامه آمده جهت پیدا کردن ترانهاده ماتریس [][]A و ذخیره آن در [][]B استفاده کرد.

برنامه محاسبه ترانهاده ماتریس مربعی در ++C

1#include <stdio.h> 
2#define M 3 
3#define N 4 
4  
5// This function stores transpose of A[][] in B[][] 
6void transpose(int A[][N], int B[][M]) 
7{ 
8    int i, j; 
9    for (i = 0; i < N; i++) 
10        for (j = 0; j < M; j++) 
11            B[i][j] = A[j][i]; 
12} 
13  
14int main() 
15{ 
16    int A[M][N] = { {1, 1, 1, 1}, 
17                    {2, 2, 2, 2}, 
18                    {3, 3, 3, 3}}; 
19  
20    // Note dimensions of B[][] 
21    int B[N][M], i, j; 
22  
23    transpose(A, B); 
24  
25    printf("Result matrix is \n"); 
26    for (i = 0; i < N; i++) 
27    { 
28        for (j = 0; j < M; j++) 
29        printf("%d ", B[i][j]); 
30        printf("\n"); 
31    } 
32  
33    return 0; 
34}

برنامه محاسبه ترانهاده ماتریس مربعی در جاوا

1// Java Program to find  
2// transpose of a matrix 
3  
4class GFG 
5{ 
6    static final int M = 3; 
7    static final int N = 4; 
8      
9    // This function stores transpose 
10    // of A[][] in B[][] 
11    static void transpose(int A[][], int B[][]) 
12    { 
13        int i, j; 
14        for (i = 0; i < N; i++) 
15            for (j = 0; j < M; j++) 
16                B[i][j] = A[j][i]; 
17    } 
18      
19    // Driver code 
20    public static void main (String[] args) 
21    { 
22        int A[][] = { {1, 1, 1, 1}, 
23                      {2, 2, 2, 2}, 
24                      {3, 3, 3, 3}}; 
25      
26        int B[][] = new int[N][M], i, j; 
27      
28        transpose(A, B); 
29      
30        System.out.print("Result matrix is \n"); 
31        for (i = 0; i < N; i++) 
32        { 
33            for (j = 0; j < M; j++) 
34            System.out.print(B[i][j] + " "); 
35            System.out.print("\n"); 
36        } 
37    } 
38} 
39  
40// This code is contributed by Anant Agarwal.

برنامه محاسبه ترانهاده ماتریس مربعی در پایتون

1# Python3 Program to find 
2# transpose of a matrix 
3  
4M = 3
5N = 4
6  
7# This function stores 
8# transpose of A[][] in B[][] 
9  
10def transpose(A, B): 
11  
12    for i in range(N): 
13        for j in range(M): 
14            B[i][j] = A[j][i] 
15  
16# driver code 
17A = [ [1, 1, 1, 1], 
18    [2, 2, 2, 2], 
19    [3, 3, 3, 3]] 
20  
21  
22# To store result 
23B = [[0 for x in range(M)] for y in range(N)]  
24  
25transpose(A, B) 
26  
27print("Result matrix is") 
28for i in range(N): 
29    for j in range(M): 
30        print(B[i][j], " ", end='') 
31    print()     

برنامه محاسبه ترانهاده ماتریس مربعی در #C

1// C# Program to find  
2// transpose of a matrix 
3 using System; 
4class GFG { 
5  
6    static  int M = 3; 
7    static  int N = 4; 
8       
9    // This function stores transpose 
10    // of A[][] in B[][] 
11    static void transpose(int [,]A, int [,]B) 
12    { 
13        int i, j; 
14        for (i = 0; i < N; i++) 
15            for (j = 0; j < M; j++) 
16                B[i,j] = A[j,i]; 
17    } 
18       
19    // Driver code 
20    public static void Main () 
21    { 
22        int [,]A = { {1, 1, 1, 1}, 
23                      {2, 2, 2, 2}, 
24                      {3, 3, 3, 3}}; 
25       
26        int [,]B= new int[N,M]; 
27       
28        transpose(A, B); 
29       
30        Console.WriteLine("Result matrix is \n"); 
31        for (int i = 0; i < N; i++) 
32        { 
33            for (int j = 0; j < M; j++) 
34            Console.Write(B[i,j] + " "); 
35            Console.Write("\n"); 
36        } 
37    } 
38} 
39   
40// This code is contributed by nitin mittal 

برنامه محاسبه ترانهاده ماتریس مربعی در PHP

1<?php 
2  
3// This function stores transpose 
4// of A[][] in B[][] 
5function transpose(&$A, &$B) 
6{ 
7    $N = 4; 
8    $M = 3; 
9    for ($i = 0; $i < $N; $i++) 
10        for ($j = 0; $j < $M; $j++) 
11            $B[$i][$j] = $A[$j][$i]; 
12} 
13  
14// Driver code 
15  
16$A = array(array(1, 1, 1, 1), 
17           array(2, 2, 2, 2), 
18           array(3, 3, 3, 3)); 
19  
20$N = 4; 
21$M = 3; 
22transpose($A, $B); 
23  
24echo "Result matrix is \n"; 
25for ($i = 0; $i < $N; $i++) 
26{ 
27    for ($j = 0; $j < $M; $j++) 
28    { 
29    echo $B[$i][$j]; 
30    echo " "; 
31    } 
32    echo "\n"; 
33} 
34  
35// This code is contributed 
36// by Shivi_Aggarwal  
37?> 

خروجی قطعه کدهای بالا به صورت زیر است.

Result matrix is
1 2 3 
1 2 3 
1 2 3 
1 2 3

برای محاسبه ترانهاده ماتریس مربعی به صورت در محل (در جا) می‌توان از روش زیر استفاده کرد.

برنامه محاسبه ترانهاده ماتریس مربعی به صورت در محل در ++C

1#include <bits/stdc++.h> 
2using namespace std; 
3  
4#define N 4 
5  
6// Converts A[][] to its transpose 
7void transpose(int A[][N]) 
8{ 
9    for (int i = 0; i < N; i++) 
10        for (int j = i+1; j < N; j++) 
11            swap(A[i][j], A[j][i]); 
12} 
13  
14int main() 
15{ 
16    int A[N][N] = { {1, 1, 1, 1}, 
17                    {2, 2, 2, 2}, 
18                    {3, 3, 3, 3}, 
19                    {4, 4, 4, 4}}; 
20  
21    transpose(A); 
22  
23    printf("Modified matrix is \n"); 
24    for (int i = 0; i < N; i++) 
25    { 
26        for (int j = 0; j < N; j++) 
27           printf("%d ", A[i][j]); 
28        printf("\n"); 
29    } 
30  
31    return 0; 
32} 

برنامه محاسبه ترانهاده ماتریس مربعی به صورت در محل در جاوا

1// Java Program to find  
2// transpose of a matrix 
3  
4class GFG 
5{ 
6    static final int N = 4; 
7      
8    // Finds transpose of A[][] in-place 
9    static void transpose(int A[][]) 
10    { 
11        for (int i = 0; i < N; i++) 
12            for (int j = i+1; j < N; j++) 
13            { 
14                 int temp = A[i][j]; 
15                 A[i][j] = A[j][i]; 
16                 A[j][i] = temp; 
17            } 
18    } 
19      
20    // Driver code 
21    public static void main (String[] args) 
22    { 
23        int A[][] = { {1, 1, 1, 1}, 
24                      {2, 2, 2, 2}, 
25                      {3, 3, 3, 3}, 
26                      {4, 4, 4, 4}}; 
27         
28        transpose(A); 
29      
30        System.out.print("Modified matrix is \n"); 
31        for (int i = 0; i < N; i++) 
32        { 
33            for (int j = 0; j < N; j++) 
34            System.out.print(A[i][j] + " "); 
35            System.out.print("\n"); 
36        } 
37    } 
38}

برنامه محاسبه ترانهاده ماتریس مربعی به صورت در محل در پایتون ۳

1# Python3 Program to find 
2# transpose of a matrix 
3  
4N = 4
5   
6# Finds transpose of A[][] in-place 
7def transpose(A): 
8  
9    for i in range(N): 
10        for j in range(i+1, N): 
11            A[i][j], A[j][i] = A[j][i], A[i][j] 
12  
13# driver code 
14A = [ [1, 1, 1, 1], 
15    [2, 2, 2, 2], 
16    [3, 3, 3, 3], 
17    [4, 4, 4, 4]] 
18   
19 transpose(A) 
20   
21print("Modified matrix is") 
22for i in range(N): 
23    for j in range(N): 
24        print(A[i][j], " ", end='') 
25    print() 
26      
27# This code is contributed 
28# by Anant Agarwal.

برنامه محاسبه ترانهاده ماتریس مربعی به صورت در محل در #C

1// C# Program to find transpose of 
2// a matrix 
3using System; 
4  
5class GFG { 
6      
7    static int N = 4; 
8      
9    // Finds transpose of A[][] in-place 
10    static void transpose(int [,]A) 
11    { 
12        for (int i = 0; i < N; i++) 
13            for (int j = i+1; j < N; j++) 
14            { 
15                int temp = A[i,j]; 
16                A[i,j] = A[j,i]; 
17                A[j,i] = temp; 
18            } 
19    } 
20      
21    // Driver code 
22    public static void Main () 
23    { 
24        int [,]A = { {1, 1, 1, 1}, 
25                    {2, 2, 2, 2}, 
26                    {3, 3, 3, 3}, 
27                    {4, 4, 4, 4}}; 
28          
29        transpose(A); 
30      
31        Console.WriteLine("Modified matrix is "); 
32        for (int i = 0; i < N; i++) 
33        { 
34            for (int j = 0; j < N; j++) 
35                Console.Write(A[i,j] + " "); 
36                  
37            Console.WriteLine(); 
38        } 
39    } 
40} 
41  
42// This code is contributed by anuj_67.

برنامه محاسبه ترانهاده ماتریس مربعی به صورت درجا در PHP

1<?php 
2// Converts A[][] to its transpose 
3function transpose(&$A) 
4{ 
5    $N = 4; 
6    for ($i = 0; $i < $N; $i++) 
7        for ($j = $i + 1; $j < $N; $j++) 
8            { 
9                $temp = $A[$i][$j]; 
10                $A[$i][$j] = $A[$j][$i]; 
11                $A[$j][$i] = $temp; 
12            } 
13} 
14  
15// Driver Code 
16$N = 4; 
17$A = array(array(1, 1, 1, 1), 
18            array(2, 2, 2, 2), 
19           array(3, 3, 3, 3), 
20           array(4, 4, 4, 4)); 
21  
22transpose($A); 
23  
24echo "Modified matrix is " . "\n"; 
25for ($i = 0; $i < $N; $i++) 
26{ 
27    for ($j = 0; $j < $N; $j++) 
28        echo $A[$i][$j] . " "; 
29    echo "\n"; 
30} 
31  
32// This code is contributed 
33// by Akanksha Rai(Abby_akku) 
34?> 

خروجی قطعه کدهای بالا به صورت زیر است.

Modified matrix is
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *