0

你好(对不起我的英语),我对矩阵乘法的python有很大的疑问,我创建了一个列表列表并乘以一个缩放矩阵,这就是我所做的,我不能用索引执行乘法运算问题,我用纸和铅笔检查并且它有效,我在做一些不好的事情来容纳索引或者我从一开始就错误地容纳矩阵?

def main():
if len(sys.argv) > 1:
    v = int(sys.argv[1])
else:
    print "error python exe:"
    print "\tpython <programa.py> <num_vertices>"
A = []
for i in range(v):
    A.append([0]*2)
for i in range(v):
    for j in range(2):
        A[i][j] = input("v: ")  


print A 
    Escala(A)

def Escala(A):
    print "Escala"
    sx = input("Sx: ")
    sy = input("Sy: ")
    S = [(sx,0),(0,sy)]
    print S
    M = mult(S,A)
    print M



def mult(m1,m2):
M = zero(len(m1),len(m2[0])) 
    for i in range(len(m2)):   
        for j in range(len(m2[0])): 
            for k in range(len(m1)): 
                M[i][j] += m1[k][j]*m2[k][j]
    print M                 
    return M

def zero(m,n):
# Create zero matrix
new_matrix = [[0 for row in range(n)] for col in range(m)]
return new_matrix
4

1 回答 1

5

这对我来说似乎是错误的:

M[i][j] += m1[k][j]*m2[k][j]

不应该是:

M[i][j] += m1[i][k]*m2[k][j]
于 2013-02-21T13:52:20.360 回答