我试图通过让用户决定尺寸来创建两个矩阵,然后在逐个输入数字或让系统用随机数填充数字之间进行选择。之后,程序应该将两个矩阵相乘并打印结果。
这是我到目前为止所做的:
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]]和#34;)。其次,第二个矩阵似乎有一个错误:" IndexError:列表赋值索引超出范围"。对于随机数填充,我知道我可以使用np.matrix和np.random。
提前谢谢!
答案 0 :(得分:0)
第一个矩阵的代码可以正确生成n×m矩阵,所以这是正确的。线性输出[[0,0],[0,0]]
就是矩阵的显示方式。但是,你永远不会制作第二个矩阵。确保初始化第二个矩阵!
mat2=[([0]*n2)]*m2
否则,您将使用第二个矩阵的索引索引到第一个矩阵。
另外,作为注释 - 您正在使用2D列表来表示您的矩阵,以便进行说明。 numpy并不是必需的。