python题目:实现矩阵运算

题目

  • 分别构造2*2-2*5,3*2~3*5,4*2-4*5,5*2-5*5共16个矩阵
  • 在屏幕端可以选择打印相关矩阵
  • 程序运行后,只需提示有哪些类型的矩阵即可
  • 实现矩阵运算,包括矩阵的乘法和矩阵的转置,在屏幕端选择运算类型以及需要进行运算的矩阵
  • 单独定义并实现一个函数,要求可以判断两个矩阵之间是否可以进行乘法运算,返回布尔值(0或1),要求该函数呗矩阵的乘法功能所调用
  • 需要构造类,并实现初始化函数及其成员

说明

  • 2*3矩阵是指矩阵的行数是2行,列数是3列

  • 用numpy库来实现该功能

代码

#2019.1.12 liu先僧

from numpy import *

#创建矩阵类,包含矩阵的行、列和内容以及操作
class Matrix:
    def __init__(self,row,column,ele):
        self.row = row
        self.column = column
        self.ele = ele
    def Multiply(m1,m2):
        if judge(m1,m2) == 1:
            print(m1.ele*m2.ele)
        else:
            print("Can not Multiply!")
    def Transpose(m):
        print(m.ele.T)

#判断两个矩阵是否可以相乘的函数
def Judge(m1,m2):
    if m1.column == m2.row:
        return 1
    else:
        return 0

#创建一个储存矩阵的字典,例如matrixs['2*2'] = [[1,2],[3,4]]
matrixs = {}

#初始化,输入矩阵
print("Please input 16 matrices one by one, for example [[1,2],[3,4]] is a matrix of 2 rows and 2 columns.")
for i in range(2,6):
    for j in range(2,6):
        print("Please enter the matrix of the {0} row {1} column".format(i,j))
        row = i
        column = j
        ele = mat(eval(input()))
        name = str(i) + '*' + str(j)
        matrixs[name] = Matrix(row,column,ele)

#菜单,可以进行矩阵的打印、乘法以及转置
while(True):
    print("Input:\n1:to Print\n2:to Multiply or Transpose\n3:to Quit")#菜单
    op = int(input())
    if op == 1:#矩阵的打印
        print("Input the matrix you want to output like 2*2")
        s = input()
        print(matrixs[s].ele)
        while(True):#输入 1 继续
            print("Input 1 to continue!")
            a = int(input())
            if a == 1:
                break
    elif op == 2:#矩阵的运算
        print("Input:\n1:to Multiply\n2:to Transpose\n3:to Quit")
        b = int(input())
        if b == 1:#矩阵的乘法
            print("Input the first Matrix")
            s1 = input()
            print("Input the other Matrix")
            s2 = input()
            m1 = matrixs[s1]
            m2 = matrixs[s2]
            Matrix.Multiply(m1,m2)
        elif b == 2:#矩阵的转置
            print("Input the Matrix")
            s = input()
            m = matrixs[s]
            Matrix.Transpose(m)
        elif b == 3:#退出
            print("Quit Successfully!")
            continue
        else:
            print("INPUT ERROR!")
    elif op == 3:
        print("Quit Successfully!")
        break
    else:
        print("INPUT ERROR!")
    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值