【问题标题】:matrix multiplication with get _row get_column - python矩阵乘法与 get _row get_column - python
【发布时间】:2016-11-09 07:42:08
【问题描述】:

我有一个带有 get_row 和 get_column 定义的类 Matrix(object)。如何与它们进行矩阵乘法?

def get_row(self,r):
    get_row = self._m[r]
    return get_row   


def get_column(self,c):
    get_column=[]
    for row in self._m:
        get_column.append(row[c])
    return get_column

m2=矩阵(2,[[1,2],[3,4]]) m3=矩阵(2,[[5,6],[7,8]])

gc= m2.get_column(1) ----> [2,4] gr=m2.get_row(1) ----> [3,4]

以下代码有效,但我必须使用 get_row 和 get_column 来完成

nollmatris=[[0 for r in range(self._size)] for c in range(self._size)]
  for i in range(len(self._m)):         
     for j in range(len(other._m[0])):  
        for k in range(len(other._m)):  
           nollmatris[i][j] += self._m[i][k] * other._m[k][j]
for svar in nollmatris:
    print(svar)

【问题讨论】:

    标签: python matrix matrix-multiplication


    【解决方案1】:

    我认为这是作业,因为如果不是作业,答案是“get numpy”。

    如果这不可行,最好的办法是使用zip() 作为for 循环中的迭代器。

    【讨论】:

      【解决方案2】:

      只需应用矩阵乘积的正式定义:

      m1, m2 definition
      product = [[0 for j in range(len(m2.get_row(0)))] for i in range(len(m1.get_column(0)))]
      for i in range(len(product)) :
          for j in range(len(product[0])) :
              for k in range(len(m1.get_row(0))) :
                  product[i][j] += m1[i][k]*m2[k][j]
      

      非常基本的方法,根本没有优化,但它有效。

      【讨论】:

        猜你喜欢
        • 2016-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多