【发布时间】:2017-05-18 20:11:54
【问题描述】:
我试图创建两个矩阵,让用户决定维度,然后在一个一个输入数字或让系统用随机数填充它之间进行选择。稍后,程序应该将两个矩阵相乘并打印结果。
这是我目前所拥有的:
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: list assignment index out of range”。对于随机数填充,我知道我可以使用 np.matrix 和 np.random。
提前谢谢你!
【问题讨论】:
-
“第一个矩阵是线性形式”是什么意思?是不是类似于“[[1,2,3],[4,5,6],[7,8,9]]”?
-
@ErikBrodyDreyer 是的,完全正确。
-
这就是列表列表的表示方式。您可以编写自己的打印函数以使其看起来像矩阵的方式打印矩阵,但这就是默认打印将显示矩阵的方式。这不是错误。