[英]Python matrix multiplication - result matrix size
我正在尝试在 Python 中创建矩阵乘法的乘积矩阵,但我不确定矩阵的大小,因为用户可以为矩阵乘法提供任何输入。
当提供实际矩阵大小时,我已经使用它来处理先前的矩阵任务 product_matrix = [[col for col in range(4)] for row in range(4)]
但我不确定在这种情况下如何解决它。
对于x = range(len(B[0]))
,您的意思是x = len(B[0])
吗?
通过乘以A * B
,您得到的矩阵result
应该具有A
的num_raw
和B
的num_col
。
x = len(B[0])
表示您的x
正在计算B
的每一行有多少个元素,即x
是B
的num_col
。 len(A)
正在计算A
中有多少行,即len(A)
是A
的num_row
。 因此,您的result
被初始化为“每行有x
元素,并且有len(A)
行”,所有条目均为 0。
您提供的第二行应该在一个 for 循环中,这与您手动计算结果矩阵的每个条目的方式完全相同。
def inMatrix(m,n):#function For Multiplication And Pass Row and col number as Parameter
a=[]#Blank Matrix
for i in range(m):#Row
b=[]#Blank List
for j in range(n):#col
j=int(input("Enter Matrix Elements in pocket ["+str(i)+"]["+str(j)+"]"))
b.append(j)#add element to list
a.append(b)#add List to Matrix
return a #return Matrix
def priMatrix(a):#function for Print Matrix
for i in range(len(a)): #row
for j in range(len(a[0])):#col
print(a[i][j],end=" ") #print Number with space
print()#print line for New row
def multply(a,b):#Multiplication function Pass two Matrix as Parameter
mul=[] #Blank Matrix
sum=0#sum With ) Value
for i in range(len(a)):#row
l=[] #Blank list
for j in range(len(a[0])):#col
for k in range(len(b)):#select
sum=sum+a[i][k]*b[k][j]#sum with Mul
l.append(sum)#add Mul Value
sum=0#Sum 0 For Next Calculation
mul.append(l)#Add List
return mul #return Multiplication Matrix
m=int(input("row"))#First Matrix Row
n=int(input("col"))#First Matrix Col
a=inMatrix(m,n)#First Matrix input
j=int(input("row"))#second Matrix Row
k=int(input("col"))#second Matrix Col
b=inMatrix(j,k)#Second Matrix Input
priMatrix(a)#First Matrix Print
priMatrix(b)#second Matrix Print
c=multply(a,b)#Multiplication Matrix Function Call
priMatrix(c)#Multiplication Matrix Print
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.