Computer >> Máy Tính >  >> Lập trình >> C#

Hoán vị ma trận trong C #

Chuyển vị của ma trận lật ma trận qua đường chéo của nó và điều này mang lại các phần tử hàng trên cột và các phần tử cột trên hàng.

Ví dụ -

Matrix before Transpose:

123
456
789

Matrix after Transpose:
147
258
369

Hãy để chúng tôi xem một ví dụ trong C # để đạt được chuyển vị của một ma trận -

Ví dụ

using System;
public class Demo {
   public static void Main() {
      int i, j, m, n;
      int[, ] arr1 = new int[30, 30];
      int[, ] arr2 = new int[30, 30];

      Console.Write("\nEnter the number of rows and columns of the matrix :\n");
      Console.Write("Rows entered = ");
      m = Convert.ToInt32(Console.ReadLine());

      Console.Write("Columns entered = ");
      n = Convert.ToInt32(Console.ReadLine());

      Console.Write("Set elements in the matrix...\n");
      for (i = 0; i < m; i++) {
         for (j = 0; j < n; j++) {
            Console.Write("\n [{0}],[{1}] : ", i, j);
            arr1[i, j] = Convert.ToInt32(Console.ReadLine());
         }
      }

      Console.Write("\n\nMatrix before Transpose:\n");
      for (i = 0; i < m; i++) {
         Console.Write("\n");
         for (j = 0; j < n; j++)
         Console.Write("{0}\t", arr1[i, j]);
      }

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

            arr2[j, i] = arr1[i, j];
         }
      }

      Console.Write("\n\nMatrix after Transpose: ");
      for (i = 0; i < m; i++) {
         Console.Write("\n");
         for (j = 0; j < n; j++) {
            Console.Write("{0}\t", arr2[i, j]);
         }
      }
      Console.Write("\n\n");
   }
}

Kết quả sau đây sẽ được tạo ra khi chạy chương trình trên. Tại đây, các giá trị từ người dùng sẽ được nhập cho số hàng và cột cũng như các phần tử của ma trận -

Enter the number of rows and columns of the matrix :3 3
Rows entered = 3
Columns entered 3
Set elements in the matrix...

[0],[0] : 1
[0],[1] : 2
[0],[2] : 3
[1],[0] : 4
[1],[1] : 5
[1],[2] : 6
[2],[0] : 7
[2],[1] : 8
[2],[2] : 9

Matrix before Transpose:

123
456
789

Matrix after Transpose:
147
258
369