簡體   English   中英

創建具有用戶輸入維度和數字的矩陣-Python

[英]Create a matrix with user input dimension and numbers - Python

我正在嘗試通過讓用戶確定尺寸並稍后選擇在逐個輸入數字或讓系統用隨機數填充之間進行選擇來創建兩個矩陣。 以后,程序應將兩個矩陣相乘並打印結果。

這是我到目前為止的內容:

    import numpy as np
    print("Choose 4 numbers: ")
#Dimensions for the first matrix
    m = int(input("m: "))
    n = int(input("n: "))
#Dimensions for the second matrix
    m2 = int(input("m2: "))
    n2 = int(input("n2: "))
    mat = [0]
    mat=[(mat*n)]*m


    op = int(input("How would you like to arrange your matrix? For number by number press  1, \
     for random matrix press 2: "))



    if op == 1:
        for i in range(m):
            for j in range(n):
                num = int(input("Choose a number: "))
                mat[i][j] = num
        print (mat)

for x in range(m2):
            for y in range(n2):
                num2 = int(input("Choose a number: "))
                mat[x][y] = num2
        print (mat)

我這里有幾個問題。 首先,第一個矩陣為線性形式(例如:“ [[1,2,3],[4,5,6],[7,8,9]]”)。 其次,第二個矩陣似乎有一個錯誤:“ IndexError:列表分配索引超出范圍”。 對於隨機數填充,我知道我可以使用np.matrix和np.random。

先感謝您!

您對第一個矩陣的代碼確實正確地生成了一個n×m矩陣,所以這是正確的。 線性輸出[[0,0],[0,0]]就是矩陣的顯示方式。 但是,您永遠不會制作第二個矩陣。 確保也初始化第二個矩陣!

mat2=[([0]*n2)]*m2

否則,您將使用第二個矩陣的索引來索引到第一個矩陣。

另外,請注意-為了清楚起見,您使用2D列表表示矩陣。 不需要numpy。

暫無
暫無

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

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