簡體   English   中英

用戶定義的Python矩陣計算程序輸入

[英]User defined input for matrix calculation program in Python

我已經寫下了最終目標的“硬編碼”版本。 如您所見,我有一個特定的n值以及預定義的矩陣X和Y。該程序目前可以正常執行計算,但是我遇到的麻煩是修改它以接受用戶定義的n輸入, X和Y,並根據用戶輸入的內容准確執行計算。 我仍然習慣於Python和用戶輸入,因此在編碼方面的任何幫助將不勝感激! 我還應注意,出於學習目的,我正在嘗試不使用NumPy進行此操作。 謝謝!

# Program to add two matrices
# using nested loop

n = 3

X = [[12,7,3],
    [4 ,5,6],
    [7 ,8,9]]

Y = [[5,8,1],
    [6,7,3],
    [4,5,9]]

result = [[0,0,0],
         [0,0,0],
         [0,0,0]]

# adds the matrices
# iterate through rows
for i in range(len(X)):
   # iterate through columns
   for j in range(len(X[0])):
       result[i][j] = X[i][j] + Y[i][j]

for r in result:
   print(r)


# subtracts the matrices
for i in range(len(X)):
   for j in range(len(X[0])):
       result[i][j] = X[i][j] - Y[i][j]

for r in result:
   print(r)

# multiplies the matrices
for i in range(len(X)):
   # iterate through columns
   for j in range(len(X[0])):
       result[i][j] = sum((X[i][v]*Y[v][j] for v in range(n)))

for r in result:
   print(r)

也許這會有所幫助。 首先,您從用戶那里得到n,然后讀取X矩陣的n行數。 每行中的值用逗號分隔。

n  = int(input("Provide n: "))

X = [];

for rowi in range(n):
    row_list = list(map(float, input("row {}: ".format(rowi+1)).split(',')))
    X.append(row_list)

print(X)

請注意,這已在python 3.4中進行了測試,此處沒有任何錯誤檢查。 因此,可能您需要添加一些條件來檢查用戶輸入是否為數字,而不是字符串,例如,每行是否具有相同數量的條目等。

因為我們知道matrx可以在Python中表示為嵌套列表,所以我們可以提示用戶輸入每個元素。同一行中的元素首先包含在名為row []的列表中,然后附加到容器列表中,因此我們得到容器列表內的列表,因此也包含矩陣。

#Prints the sum of matrix of orders mxn
first_row_count = int(input('Enter the number of rows of 1st matrix :'))
first_col_count = int(input('Enter the number of columns of 1st matrix :'))

second_row_count = int(input('Enter the number of rows of 1st matrix :'))
second_col_count = int(input('Enter the number of columns of 1st matrix :'))

first_Matrix =[]
second_matrix=[]

if(first_row_count == second_row_count) and (second_row_count == second_col_count):
    print('############Enter the elements of first Matrix#################')
    for i in range(0,first_row_count):
        row = []
        input_variable = None
        for j in range(0,first_col_count):
            input_variable = int(input('Enter the element at mat[{0}][{1}]'.format(i,j)))
            row.append(input_variable)
       first_Matrix.append(row) 

    print('############Enter the elements of second Matrix#################')    
    for i in range(0,second_row_count):
        row = []
        input_variable = None
        for j in range(0,second_col_count):
            input_variable = int(input('Enter the element at mat[{0}][{1}]'.format(i,j)))
            row.append(input_variable)
        second_matrix.append(row)          

    print('############Resultant Matrix#################')   
    result = [[first_Matrix[i][j] + second_matrix[i][j]  for j in range(len(first_Matrix[0]))] for i in range(len(first_Matrix))]
    for r in result:
           print(r)
else:
    print('------------The matrix of given orders are not compatible-----------------')    
print('########The Matrix Sum performed##################')    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM