Python乘法

标签 python list

<分区>

Possible Duplicate:
Matrix Multiplication in python?

我已经写了一个程序可以将两个矩阵相乘。但是如果两个矩阵有不同的列(错误答案),这些代码就不起作用。

C = [[4,1,9], [6,2,8], [7,3,5]]
D = [[2,9], [5,2], [1,0]]
M=[] 
for i in range(len(C)):
     Z.append([])
        for j in range(len(D[0])):
            Z[i].append(0)
            for k in range(len(D[0])):
                M[i][j]+=C[i][k]*D[k][j]
print (M)

最佳答案

在你的最后一个循环中,你希望 klen(D)len(C[0]) (必须相等,否则乘法没有任何意义)。这是修复它的代码的最小修改:

C = [[4,1,9], [6,2,8], [7,3,5]]
D = [[2,9], [5,2], [1,0]]

assert(len(C[0]) == len(D))      # sanity check!
M=[] 
for i in range(len(C)):
    M.append([])
    for j in range(len(D[0])):
        M[i].append(0)
        for k in range(len(D)):  # fixed value
            M[i][j]+=C[i][k]*D[k][j]
print (M)

关于Python乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13537926/

相关文章:

Python - 发送 "Incomplete"GET 请求

java - 意外地重新定义迭代器中的变量以读取所有列表元素

java - 将列表转换为集合

Java ConcurrentLinkedQueue 而不是 List?

python - 删除没有突变的列表元素

python - sqlalchemy,如果它不存在则创建一个 sqlite 数据库

Python 3 "Sideways"相对导入

python - 让 SQLAlchemy 在 create_all 上发布 CREATE SCHEMA

java - 我应该如何为 LinkedList 定义 contains() 命令?

python - 允许 Python 模块写入 AWS Lambda 上的磁盘