矩阵运算(python3)

【问题描述】

编写一个程序,输入两个矩阵AN×N与BN×N(2≤N≤10)进行如下运算:
1.加
2.减
3.乘

【输入形式】

标准输入上依次输入以下内容:
4.输入第一个矩阵AN×N。形式是N个输入行,每行有分别N个整数(可能为负数),代表矩阵AN×N的所有元素。各整数之间以一个或多个空格分隔。
5.输入运算符,是一个字符,可以是"+"、"-"、"*",分别代表加、减、乘三种操作。
6.输入第二个矩阵BN×N。形式与AN×N相同。
7.以空行表示所有输入的结束。

【输出形式】

在标准输出上打印运算结果,同样是输出N行,每行分别输出该行的N个元素。每个整数占据5个字符宽度(包括负号),向右对齐,不足部分补以空格。

【样例输入】

(下图中"#"代表一个空格)
5##7#12
3###-15# 4
2#6#7
+
41#8#9
7#6#12
2#4#6

【样例输出】

##46##15##21
##10##-9##16
###4##10##13

【样例说明】

输入的A和B分别是两个三阶矩阵,要求进行加法运算,结果如上例所示。

【代码】

import numpy

a, b, c = [], [], []
t = 0


def add():
    for i in range(0, t):
        for j in range(0, t):
            sum = a[i][j] + b[i][j]
            print('%5d' % sum, end='')
        print()


def sub():
    for i in range(0, t):
        for j in range(0, t):
            sum = a[i][j] - b[i][j]
            print('%5d' % sum, end='')
        print()


def multi():
    t1 = numpy.array(a)
    t2 = numpy.array(b)
    res = numpy.dot(t1, t2)
    for i in range(0, t):
        for j in range(0, t):
            print('%5d' % res[i][j], end='')
        print()


if __name__ == '__main__':
    while True:
        s = input().split()
        if s[0] == '+' or s[0] == '-' or s[0] == '*':
            op = s[0]
            break
        s = [int(x) for x in s]
        a.append(s)
        t += 1
    for i in range(0, t):
        s = input().split()
        s = [int(x) for x in s]
        b.append(s)
    # print(a)
    # print(b)
    if op == '+':
        add()
    if op == '-':
        sub()
    if op == '*':
        multi()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿炳的旅程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值