python导入txt文档矩阵乘法

#矩阵乘法
ls = []#存入第二个列表
result = []#存入第一个矩阵
a = []#存入的是第二个矩阵的行和列
b = []#存入的是第一个#矩阵的行和列
fd = open("D:\新建文本文档.txt", "r")#打开第一个文档
#fo = open("D:\hc.txt", "r")
for line in fd.readlines():
    result.append(list(map(int, line.split())))#将第一个文档的内容存入列表
#fo = open("D:\hc.txt", "r")
#for line in fo.readline():
    #ls.append(list(map(int, line.split(','))))
with open("D:\hc.txt", "r") as file:
    for line in file:
        ls.append(list(map(int, line.split())))  # 将第二个文档的元素存入列表  split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串
        #这边题目要求是空格键 map() 会根据提供的函数对指定序列做映射。
        #第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表
        #这边的意思书以空格为分隔符(split默认值为空格),因为一开始是字符串型通过int转化为int型
        pass
#print(ls)
a = ls.pop(0)
b = result.pop(0)
k = a.pop(0)#第二个矩阵的行
#print(a)
#print(b)
#print(k)
l = a.pop(0)#列
#print(l)  这里我想到的使用pop 后来发现用len函数更简单 解释一下pop,pop是先取出后删除,所以后面的数据依旧是pop(0)
m = b.pop(0)#行
n = b.pop(0)#列
#print(m)
#print(n)
p =[[0]*l for f in range(m)]#[0]*m,就是m个0,如果m==4 就是四个[0,0,0,0],矩阵相乘 m*n的矩阵和 k*l的矩阵 相乘,结果必为 m*l的矩阵
#print(p)
if n != k:
    print("矩阵无法相乘")
else:
    for i in range(m):
        for j in range(l):
            for h in  range(n):
                p[i][j] = result[i][h]*ls[h][j] + p[i][j]
#for x in range(m):
    #for y in  range(l):
    print(p)

猜你喜欢

转载自blog.csdn.net/huzi99/article/details/80487489
今日推荐