Chương trình python để nhân hai ma trận lấy đầu vào từ người dùng

Ở đây, chúng tôi lấy đầu vào của người dùng để nhân hai ma trận;

# Python program to multiply two matrices using numpy

# import NumPy library
import numpy

# take first matrix inputs
print("Enter order of matrix 1:")
m, n = list(map(int, input().split()))
print("Enter row values")
m1 = []
for i in range(m):
   print("Enter row ", i, " values:")
   row = list(map(int, input().split()))
   m1.append(row)

# take second matrix inputs
print("Enter order of matrix 2:")
p, q = list(map(int, input().split()))
print("Enter row values")
m2 = []
for j in range(p):
   print("Enter row ", j, "values: ")
   row = list(map(int, input().split()))
   m2.append(row)

# print both matrices
print("Matrix 1: ", m1)
print("Matrix 2: ", m2)

# multiply matrix
print("Matrix Multiplication: ")
result = numpy.dot(m1, m2)
for row in result:
   print(row)

đầu ra. -

Nhập thứ tự của ma trận 1.
2 2
Nhập giá trị hàng
Nhập giá trị hàng 0.
2 4
Nhập các giá trị của hàng 1.
3 5
Nhập thứ tự của ma trận 2.
2 2
Nhập giá trị hàng
Nhập giá trị hàng 0.
9 7
Nhập các giá trị của hàng 1.
6 5
Ma trận 1. [[2, 4], [3, 5]]
Ma trận 2. [[9, 7], [6, 5]]
Phép nhân ma trận.
[42 34]
[57 46]

Trong đoạn mã trên, phép nhân ma trận trong đầu vào của người dùng python. chúng tôi đang kết hợp hai đầu vào với nhau là m, n = list(map(int, input(). split())) ở đây, chúng ta đã lấy hai đầu vào là hàng và cột cho ma trận thứ nhất tương tự, điều tương tự cũng được thực hiện cho ma trận thứ hai p, q lần lượt là hàng và cột. Sau đó, nhân ma trận bằng numpy. dot() và lưu trữ nó trong kết quả

Phép nhân ma trận Python bằng đầu vào của người dùng

Trong chương trình trước, chúng tôi đã sử dụng NumPy để nhân hai ma trận nhưng trong chương trình này, chúng tôi sẽ nhân hai ma trận mà không cần NumPy

# Python program to multiply two matrices without numpy

# take first matrix inputs
print("Enter the order of matrix 1:")
m, n = list(map(int, input().split()))
print("Enter row values")
m1 = []
for i in range(m):
   print("Enter row",  i, "values:")
   row = list(map(int, input().split()))
   m1.append(row)

# take second matrix inputs
print("Enter the order of matrix2:")
p, q = list(map(int, input().split()))
print("Enter row values")
m2 = []
for j in range(p):
   print("Enter row", j, "value:")
   row = list(map(int, input().split()))
   m2.append(row)

# print both matrices
print("Matrix 1:", m1)
print("Matrix 2:", m2)

# multiply matrix
result = []
for i in range(m):
   row = []
   for j in range(q):
      row.append(0)
   result.append(row)
print("Matrix Multiplication:")
for i in range(m):
   for j in range(q):
      for k in range(n):
         result[i][j] += m1[i][k] * m2[k][j]
for row in result:
   print(row)

đầu ra. -

Nhập thứ tự của ma trận 1.
3 3
Nhập giá trị hàng
Nhập giá trị hàng 0.
4 5 6
Nhập các giá trị của hàng 1.
3 5 9
Nhập giá trị hàng 2.
7 6 3
Nhập thứ tự của ma trận2.
3 3
Nhập giá trị hàng
Nhập giá trị hàng 0.
7 9 5
Nhập giá trị hàng 1.
3 4 6
Nhập giá trị hàng 2.
2 8 9
Ma trận 1. [[4, 5, 6], [3, 5, 9], [7, 6, 3]]
Ma trận 2. [[7, 9, 5], [3, 4, 6], [2, 8, 9]]
Phép nhân ma trận.
[55, 104, 104]
[54, 119, 126]
[73, 111, 98]

Phép nhân ma trận trong đầu vào của người dùng Python

Trong python, chúng ta có thể định nghĩa các chức năng của riêng mình. Mục đích chính của việc này là sử dụng lại mã do đó nó làm giảm số lượng dòng. Để định nghĩa một hàm chúng ta sử dụng từ khóa def

# Python program to multiply two matrices using function

MAX = 100
def matrixPrint(M, row, col):
   for i in range(row):
      for j in range(col):
         print(M[i][j], end=" ")
      print()

def matrixMultiply(row1, col1, m1, row2, col2, m2):
   res = [[0 for i in range(MAX)] for j in range(MAX)]
   if(row2 != col1):
      print("Matrix multiplication not possible")
      return
   for i in range(row1):
      for j in range(col2):
         res[i][j] = 0
         for k in range(row2):
            res[i][j] += m1[i][k] * m2[k][j]
   print("Result:")
   matrixPrint(res, row1, col2)

# main
if __name__ == "__main__":
   m1 = [[0 for i in range(MAX)] for j in range(MAX)]
   m2 = [[0 for i in range(MAX)] for j in range(MAX)]
   row1 = int(input("Enter the number of rows in matrix 1: "))
   col1 = int(input("Enter the number of columns in matrix 1: "))
   print("Enter the elements of matrix 1:")
   for i in range(row1):
      for j in range(col1):
         m1[i][j] = int(input("m1[" + str(i) + "][" + str(j) + "]: "))

   row2 = int(input("Enter the number of rows in matrix 2: "))
   col2 = int(input("Enter the number of columns in matrix 2: "))

   print("Enter the elements of matrix 2: ")
   for i in range(row2):
      for j in range(col2):
         m2[i][j] = int(input("m2[" + str(i) + "][" + str(j) + "]: "))
   print("Matrix 1: ")
   matrixPrint(m1, row1, col1)
   print("Matrix 2: ")
   matrixPrint(m2, row2, col2)
   matrixMultiply(row1, col1, m1, row2, col2, m2)

đầu ra. -

Nhập số hàng trong ma trận 1. 2
Nhập số cột của ma trận 1. 3
Nhập các phần tử của ma trận 1.
m1[0][0]. 12
m1[0][1]. 23
m1[0][2]. 20
m1[1][0]. 15
m1[1][1]. 21
m1[1][2]. 18
Nhập số hàng của ma trận 2. 3
Nhập số cột của ma trận 2. 2
Nhập các phần tử của ma trận 2.
m2[0][0]. 4
m2[0][1]. 9
m2[1][0]. 8
m2[1][1]. 7
m2[2][0]. 5
m2[2][1]. 4
Ma trận 1.
12 23 20
15 21 18
Ma trận 2.
4 9
8 7
5 4
Kết quả.
332 349
318 354

Trong ví dụ trên, chúng ta đã sử dụng hai hàm (i) matrixPrint() (ii) matrixMultiply(). Hàm đầu tiên matrixPrint() nhận 3 tham số. - ma trận cần in, dòng và cột, hàm này dùng để in ma trận. Sau đó, trong hàm thứ hai matrixMultiply(), chúng tôi đã lấy 6 tham số;

Nếu bạn thích bài đăng này, hãy chia sẻ nó với bạn bè của bạn. Bạn có muốn chia sẻ thêm thông tin về chủ đề đã thảo luận ở trên hay bạn có thấy điều gì không đúng không? . Cảm ơn bạn