Home> python> phép nhân ma trận trong Python bằng cách sử dụng đầu vào của người dùng > Python > Matrix multiplication in Python using user input
Trong bài đăng này, chúng ta sẽ thấy cách lấy đầu vào ma trận từ người dùng và thực hiện phép nhân ma trận trong Python.
Hãy cùng xem ví dụ đầu tiên. Ví dụ:
Example:
Input :matrix1=[[1,2], :matrix1=[[1,2], [2,3]][2,3]] & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Matrix2 = [[1,2],matrix2=[[1,2], [2,3]][2,3]] Output:[5,8]: [5,8] & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [8,13][8,13] |
Bây giờ, hãy để Lừa xem các cách khác nhau để thực hiện nhiệm vụ này:
Sử dụng các vòng lặp lồng nhau [cho / while].
Trong phương pháp này, chúng tôi phải lặp qua từng hàng và mỗi mục cột mà tại sao chúng tôi sử dụng các vòng lặp lồng nhau ở đây .Below là mã Python được cung cấp:
Below is the Python code given:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | in ["Nhập thứ tự của ma trận 1:"]["Enter order of 1st matrix:"] # Lấy các đầu vào số nguyên trong một dòng m,n=list[map[int,input[].split[]]],n=list[map[int,input[].split[]]] In ["Nhập các giá trị khôn ngoan hàng"]["Enter Row wise values"] # Danh sách trống cho ma trận 1 mat1=[]=[] # Hàng chèn khôn ngoan vào ma trận foriinrange[m]:iinrange[m]: & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", i, "value:"]print["Enter row",i,"value:"] & nbsp; & nbsp; & nbsp; & nbsp;# nhận đầu vào mảng 1D- Integer trong một dòng# take 1d- integer array input in one line row=list[map[int,input[].split[]]]row=list[map[int,input[].split[]]] mat1.append[row]mat1.append[row] in ["Nhập thứ tự của ma trận thứ 2:"]["Enter order of 2nd matrix:"] # Lấy các đầu vào số nguyên trong một dòng p,q=list[map[int,input[].split[]]],q= list[map[int,input[].split[]]] In ["Nhập các giá trị khôn ngoan hàng"]["Enter Row wise values"] # Danh sách trống cho ma trận 1 mat2=[]=[] # Hàng chèn khôn ngoan vào ma trận forjinrange[p]:jinrange[p]: & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", i, "value:"]print["Enter row",j,"value:"] & nbsp; & nbsp; & nbsp; & nbsp;# nhận đầu vào mảng 1D- Integer trong một dòng# take 1d- integer array input in one line row=list[map[int,input[].split[]]]row =list[map[int,input[].split[]]] mat2.append[row]mat2.append[row] in ["Nhập thứ tự của ma trận thứ 2:"] # Danh sách trống cho ma trận thứ 2["Matrix 1:",mat1] & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", j, "value:"]["Matrix 2:",mat2] # Hiển thị ma trận thứ 1 và 2 resultant=[]=[] in ["Ma trận 1:", MAT1] foriinrange[m]:iin range[m]: row=[]row=[] forjinrange[q]:forjinrange[q]: row.append[0]row.append[0] resultant.append[row]resultant.append[row] in ["Ma trận 2:", MAT2]["Matrix Multiplication: "] # Danh sách trống cho ma trận resulatant # Tạo một ma trận 0 của đơn hàng m x Q foriinrange[m]:iinrange[m]: forjinrange[q]:for jinrange[q]: forkinrange[n]:forkinrange[n]: resultant[i][j]+=mat1[i][k]*mat2[k][j]resultant[i][j] +=mat1[i][k]*mat2[k][j] in ["phép nhân ma trận:"] # thực hiện phép nhân ma trậnrow inresultant: print[row]print[row] |
Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # Sử dụng Nested cho các vòng lặporder of1stmatrix: 222 # Ma trận in hàng Wise & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;Row wise values Forrow Inresultant:row0value: 122 Nhập đơn đặt hàng của1stmatrix:row 1value: 233 Nhập các giá trị khôn ngoan hàngorder of2ndmatrix: 222 # Ma trận in hàng Wise & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;Row wise values Forrow Inresultant:row0value: 12 2 Nhập đơn đặt hàng của1stmatrix:row1value: 233 Matrix1:[[1,2],[2,3]]1:[[1,2],[2,3]] Matrix2:[[1,2],[2,3]] 2:[[1,2],[2,3]] Nhập các giá trị khôn ngoan hàngMultiplication: [5,8]5,8] [8,13]8, 13] |
Nhập Row0Value:
Nhập ROW1VALUE:
Nhập thứ tự 2NDMatrix:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | Phép nhân ma trận: Sử dụng phương thức DOT [] của thư viện Numpy.numpy in ["Nhập thứ tự của ma trận 1:"]["Enter order of 1st matrix:"] m,n=list[map[int,input[].split[]]],n=list[map[int,input[].split[]]] In ["Nhập các giá trị khôn ngoan hàng"]["Enter Row wise values"] mat1=[]=[] # Hàng chèn khôn ngoan vào ma trận foriinrange[m]:iinrange[m]: & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", i, "value:"]print["Enter row",i,"value:"] row=list[map[int,input[].split[]]]row=list[map[int,input[].split[]]] mat1.append[row]mat1.append[row] in ["Nhập thứ tự của ma trận thứ 2:"]["Enter order of 2nd matrix:"] p,q=list[map[int,input[].split[]]],q=list[map[int,input[].split[]]] In ["Nhập các giá trị khôn ngoan hàng"]["Enter Row wise values"] mat2=[] =[] # Hàng chèn khôn ngoan vào ma trận forjinrange[p]:jinrange[p]: & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", i, "value:"]print["Enter row",j,"value:"] row=list[map[int,input[].split[]]]row =list[map[int,input[].split[]]] mat2.append[row]mat2.append[row] # Danh sách trống cho ma trận thứ 2["Matrix 1:",mat1] & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", j, "value:"]["Matrix 2:",mat2] in ["Ma trận 2:", MAT2]["Matrix Multiplication: "] # Danh sách trống cho ma trận resulatant # Tạo một ma trận 0 của đơn hàng m x Q resultant=numpy.dot[mat1,mat2]=numpy.dot[mat1,mat2] in ["phép nhân ma trận:"] # thực hiện phép nhân ma trận row inresultant: print[row]print[row] |
Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # Sử dụng Nested cho các vòng lặporder of1stmatrix: 222 # Ma trận in hàng Wise & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;Row wise values Forrow Inresultant:row0value: 122 Nhập đơn đặt hàng của1stmatrix:row 1value: 233 Nhập các giá trị khôn ngoan hàngorder of2ndmatrix: 222 # Ma trận in hàng Wise & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;Row wise values Forrow Inresultant:row0value: 12 2 Nhập đơn đặt hàng của1stmatrix:row1value: 233 Matrix1:[[1,2],[2,3]]1:[[1,2],[2,3]] Matrix2:[[1,2],[2,3]] 2:[[1,2],[2,3]] Nhập các giá trị khôn ngoan hàngMultiplication: [5,8]5,8] [8,13]8, 13] |
Sử dụng chức năng tổng hợp danh sách và zip [].
Trong phương thức này, hàm zip [] được sử dụng để kết hợp danh sách và đối tượng ZIP được tạo là đối tượng của danh sách các bộ dữ liệu và độ tổng hợp danh sách được sử dụng để tạo danh sách và thực hiện hoạt động trong mã một dòng.
Dưới đây là mã Python được đưa ra:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | in ["Nhập thứ tự của ma trận 1:"]["Enter order of 1st matrix:"] m,n=list[map[int,input[].split[]]],n=list[map[int,input[].split[]]] In ["Nhập các giá trị khôn ngoan hàng"]["Enter Row wise values"] mat1=[]=[] # Hàng chèn khôn ngoan vào ma trận foriinrange[m]:iinrange[m]: & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", i, "value:"]print["Enter row",i,"value:"] row=list[map[int,input[].split[]]]row =list[map[int,input[].split[]]] mat1.append[row]mat1.append[row] in ["Nhập thứ tự của ma trận thứ 2:"]["Enter order of 2nd matrix:"] p,q=list[map[int,input[].split[]]],q =list[map[int,input[].split[]]] In ["Nhập các giá trị khôn ngoan hàng"]["Enter Row wise values"] mat2=[]=[] # Hàng chèn khôn ngoan vào ma trận forjinrange[p]: jinrange[p]: & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", i, "value:"]print["Enter row",j,"value:"] row=list[map[int,input[].split[]]]row= list[map[int,input[].split[]]] mat2.append[row]mat2.append[row] in ["Nhập thứ tự của ma trận thứ 2:"]["Matrix 1:",mat1] & nbsp; & nbsp; & nbsp; & nbsp; in ["nhập hàng", j, "value:"]["Matrix 2:",mat2] in ["Ma trận 1:", MAT1]["Matrix Multiplication: "] in ["Ma trận 2:", MAT2] in ["phép nhân ma trận:"] # phép nhân ma trận perfrom bằng cách sử dụng=[[sum[ele1*ele2 forele1,ele2 inzip[row,col]] # Danh sách hiểuforcol inzip[*mat2]] resultant = [[sum [ele1*ele2 forele1, ele2 inzip [hàng, col]]for row inmat1] & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;row inresultant: print[row]print[row] |
Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # Hàng in ma trận khôn ngoanorder of1stmatrix: 222 Forrow Inresultant:Row wise values Nhập đơn đặt hàng của1stmatrix:row0value: 122 Nhập các giá trị khôn ngoan hàngrow 1value: 344 Nhập Row0Value:order of2ndmatrix: 222 Forrow Inresultant:Row wise values Nhập đơn đặt hàng của1stmatrix:row0value: 56 6 Nhập các giá trị khôn ngoan hàngrow1value: 788 Matrix1:[[1,2],[3,4]]1:[[1,2],[3,4]] Matrix2:[[5,6],[7,8]] 2:[[5,6],[7,8]] Nhập Row0Value:Multiplication: [19,22]19,22] [43,50]43, 50] |
Nhập ROW1VALUE: