python - python中的矩阵乘法与分类
问题描述
我是新来的,我的英语不是很好,所以我为将来可能出现的错误道歉。
我的老师让我们写这个带有分类的程序......这是代码
class Matrix:
def __init__(self,lst):
self.mat = lst
self.dim = (len(lst), len(lst[0]))
self.rows=[lst[i][:] for i in range(self.dim[0])]
self.columns=[[lst[i][j] for i in range(self.dim[0])] for j in range(self.dim[1])]
def get(self,i,j):
if (i) <= self.dim[0] and (j) <= self.dim[1]:
return self.mat[i-1][j-1]
else:
print ("index not in matrix!")
return None
def __multList(self,list1,list2):
if len(list1)==len(list2):
return sum([list1[i]*list2[i] for i in range(len(list1))])
def mult(self,other):
matrix=[]
for i in range(len(self.rows)):
rows=[]
for j in range(len(other.columns)):
rows.append(self.__multList(other.columns[j],self.rows[i]))
matrix.append(rows)
return Matrix(matrix)
这是司机:
from Matrixclass import Matrix
print("For first matrix enter number of row and column respectively: (Ex: 4 5)")
m,n = list(map(int,input().split()))
print("Enter Row values")
mat1 = []
for i in range(m) :
print("Enter row",i + 1,"value:")
row = list(map(int,input().split()))
mat1.append(row)
print("For 2nd matrix enter number of row and column respectively: (Ex: 5 4)")
p,q = list(map(int,input().split()))
print("Enter Row wise values")
mat2 = []
for j in range(p) :
print("Enter row",j + 1,"value:")
row = list(map(int,input().split()))
mat2.append(row)
print("Matrix 1:",mat1)
print("Matrix 2:",mat2)
A = Matrix(mat1)
B = Matrix(mat2)
C=A.mult(B)
print("The Multiplication of two Matrix:\n",C.mat)
当我运行它时,我得到了这个错误
AttributeError: 'list' object has no attribute 'mult'
更新:现在可以了;谢谢
解决方案
推荐阅读
- python - Python Pandas 丢弃连续的数据帧,但末尾的句点 (.) 是差异化因素
- r - 使用 Highcharter 的 3D 饼图
- android - 无法将使用 JVM 目标 1.8 构建的字节码内联到使用 JVM 目标 1.6 构建的字节码中,但不影响
- angular - 为什么我无法在我的简单 CRM Angular Web 应用程序中显示成功消息?
- php - Symfony 表单和 json 对象验证
- php - mysql 创建两个精确的行
- python - Python OOP、类和实例
- eclipse - Eclipse 中缺少元数据扩展
- amazon-web-services - 多租户应用程序客户端服务器架构最佳方法
- android - 替代在本地网络上推送通知