python定义一个1xn矩阵_自定义矩阵类(仅使用1个列表),乘以矩阵

我正在为我的作业创建一个python类。我们必须设计一个自定义的类处理矩阵。在

现在我对编程很陌生,但是这个赋值的主要问题是要把两个矩阵相乘。我不能让我的类用一个以上的列来实实在在地将行相乘,因为我试图只使用1个列表而不是数组来解决这个赋值问题。在

我找了又找,但似乎找不到答案。我不能使用numpy,我想看看是否可以只用一个列表来描述矩阵。在class simplematrix(object):

def __init__(self,n=0,m=0,values=list()):

self.matrix = []

for x in values:

self.matrix.append(x)

if self.matrix == []:

while len(self.matrix)

self.matrix.append(0)

if n*m != len(self.matrix):

raise ValueError('Length of values is different from length of matrix')

self.n = n

self.m = m

def __str__(self):

a = ''

if self.matrix == []:

for x in range(self.n):

a += '\n'

for y in range(self.m):

a += ' '+str(0)

else:

for x in range(self.n):

a += '\n'

for y in range(self.m):

a += ' '+str(self.matrix[y+x*self.m])

return a

def __add__(self,other):

if self.n != other.n or self.m != other.m:

raise ValueError('Matrices have different sizes.')

ans_val = []

for x in range(len(self.matrix)):

ans_val.append(self.matrix[x]+other.matrix[x])

ans = simplematrix(self.n,self.m,ans_val)

return ans

def __mul__(self,other):

if self.m != other.n:

raise ValueError('Matrices have incorrect sizes.')

ans = simplematrix(other.n,self.m)#WTF WTF WTF WTF

for y in range(self.m):

a = self.get_row(y)

b = other.get_col(y)

c = 0

for z in range(len(a)):

c += a[z]*b[z]

ans.matrix[y*self.m] = c

我似乎想不出该怎么走得更远。这只计算产品矩阵的第一列。我不确定如何才能将b改为另一列,但仍然保持a为同一列,因为我仍然需要使用它:S?在

希望看起来不那么可怕。在

有什么办法解决这个问题吗?在

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值