Hoán vị python ma trận không vuông

Chuyển vị của ma trận thu được bằng cách thay đổi hàng thành cột và cột thành hàng. Nói cách khác, chuyển vị của A[][] có được bằng cách thay đổi A[i][j] thành A[j][i].  

Đối với ma trận vuông. Chương trình dưới đây tìm chuyển vị của A[][] và lưu kết quả vào B[][], chúng ta có thể thay đổi N cho các chiều khác nhau.  

Python3




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

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

 

Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
3____24
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
5

 

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

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

 

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

 

Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
2
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
3
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
4
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
5
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
6
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
7

Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
8
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
3
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
00
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
5
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
6
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
7

________ 104 ________ 105 ________ 24 ________ 107

 

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

Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
09
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
4
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
11_______212
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
13
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
12
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
13
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
12
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
13
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
12
Result matrix is
1  2  3  
1  2  3  
1  2  3  
1  2  3
19

Chuyển vị của ma trận là một ma trận khác trong đó ma trận được lật dọc theo trục chéo của nó. Điều này có nghĩa là mỗi hàng của ma trận biến thành một cột trong ma trận kết quả

Transpose là một hoạt động thực sự phổ biến được thực hiện trên một ma trận

Dưới đây là minh họa về phép chuyển vị của ma trận 3 x 3

Lưu ý rằng ma trận không cần phải là ma trận vuông [chẳng hạn như 3 x 3] để được chuyển vị. Bạn cũng có thể chuyển đổi ma trận 2 x 4 hoặc ma trận 5 x 2

Tiếp theo, hãy triển khai thuật toán chuyển đổi ma trận với Python

Thuật toán chuyển vị ma trận

Chuyển vị một ma trận rất dễ mô tả đối với người có giấy và bút

Biến mỗi hàng thành một cột

Tuy nhiên, khi đưa ra hướng dẫn cho máy tính, điều đó không dễ dàng chút nào.

Một chương trình máy tính chuyển đổi ma trận cần lặp qua từng hàng của ma trận, chọn từng phần tử và đặt nó vào một vị trí trong mảng kết quả

Mô tả chung về thuật toán chuyển vị ma trận dưới dạng mã giả như sau

  1. Chỉ định mảng 2D A[M][N], đại diện cho ma trận M x N
  2. Khai báo một mảng 2D khác T để lưu kết quả của phép chuyển vị có kích thước N x M [đảo ngược so với mảng ban đầu. ]
  3. Lặp qua mảng 2D ban đầu và chuyển đổi các hàng của nó thành các cột của ma trận T
    • Khai báo 2 biến i và j
    • Đặt i, j = 0
    • Lặp lại cho đến khi i < M
      • Đặt j = 0
      • Lặp lại cho đến khi j < N
        • T[i][j] = A[j][i]
        • j = j + 1
      • tôi = tôi + 1
  4. Hiển thị ma trận kết quả T

Với thông tin này, hãy triển khai thuật toán chuyển đổi ma trận trong Python

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

đầu ra

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

Bây giờ bạn đã hiểu chuyển vị ma trận là gì và cách tạo một chương trình Python để tìm một ma trận, hãy xem cách thực hiện dễ dàng hơn

Cách chuyển đổi ma trận với NumPy

Trong NumPy, ma trận thường được biểu thị dưới dạng mảng 2D, trong đó mỗi mảng bên trong biểu thị một hàng của ma trận

Tuy nhiên, chuyển đổi ma trận là một hoạt động phổ biến đến mức một mảng NumPy có chức năng tích hợp sẵn cho nó

Chủ Đề