繁体   English   中英

Python 矩阵乘法 - 结果矩阵大小

[英]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应该具有Anum_rawBnum_col

x = len(B[0])表示您的x正在计算B的每一行有多少个元素,即xBnum_col len(A)正在计算A中有多少行,即len(A)Anum_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM