【问题标题】:Python matrix multiplication - result matrix sizePython矩阵乘法 - 结果矩阵大小
【发布时间】:2019-11-21 20:42:55
【问题描述】:

我正在尝试在 Python 中为矩阵乘法创建乘积矩阵,但我不确定矩阵的大小,因为用户可以为矩阵乘法提供任何输入。

当提供实际矩阵大小时,我已经在之前的矩阵任务中使用这个来处理这种情况 product_matrix = [[col for col in range(4)] for row in range(4)]

但我不确定在这种情况下如何解决它。

【问题讨论】:

    标签: python matrix multiplication


    【解决方案1】:

    对于x = range(len(B[0])),您的意思是x = len(B[0])吗?

    通过将A * B 相乘,得到的矩阵result 应具有Anum_rawBnum_col

    x = len(B[0]) 表示您的x 正在计算B 的每一行有多少个元素,即xnum_colBlen(A) 正在计算A 中有多少行,即len(A)num_rowA。因此,您的result 被初始化为“每一行都有x 元素,并且有len(A) 行”,所有条目均为0。

    您提供的第二行应该在一个 for 循环中,这与您手动计算结果矩阵的每个条目的方式完全相同。

    【讨论】:

      【解决方案2】:
      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 
      

      【讨论】:

        猜你喜欢
        • 2013-12-20
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        • 2018-01-18
        • 1970-01-01
        • 2017-03-11
        • 2013-12-23
        • 2011-11-20
        相关资源
        最近更新 更多