1. 程式人生 > >Python入門習題----矩陣的乘法

Python入門習題----矩陣的乘法

【問題描述】

編寫程式,完成3*4矩陣和4*3整數矩陣的乘法,輸出結果矩陣。

【輸入形式】

以先行後列順序輸入第一個矩陣,而後輸入第二個矩陣。

【輸出形式】

先行後列順序輸出結果矩陣,每個元素的顯示寬度為8格,螢幕一行只顯示矩陣的一行。

例如要計算如下兩個矩陣

第一個矩陣    1 2 3 4

                     5 6 7 8

                     9 1 2 3

第二個矩陣    9 8 7

                     6 5 4

                     3 2 1

                     1 2 3

輸入與輸出格式如下

【樣例輸入】

1 2 3 4 5 6 7 8 9 1 2 3 9 8 7 6 5 4 3 2 1 1 2 3

【樣例輸出】

      34      32      30

     110     100     90

      96       87      78

 參考程式碼:

# -*- coding: utf-8 -*-
"""
Created on Thu Sep 27 22:24:17 2018

@author: Dina
"""
import numpy as np
line = input().split()

# 把輸入的值轉換為 int型別
for i in range(len(line)):
    line[i]=int(line[i])

# 定義列表
a,a1,a2,a3=[],[],[],[]
b,b1,b2,b3,b4=[],[],[],[],[]
c=[]

#-------------------------  給矩陣賦值 --------------------
for i in range(4):
    a1.append(line[i])
    a2.append(line[i+4])
    a3.append(line[i+8])
    
for i in range(12,15):    
    b1.append(line[i])
    b2.append(line[i+3])
    b3.append(line[i+6])
    b4.append(line[i+9])
   
a.append(a1)
a.append(a2)
a.append(a3)

b.append(b1)
b.append(b2)
b.append(b3)
b.append(b4)

c=np.dot(a, b) # 兩個矩陣相乘

#-------------------------   打印出相乘後的矩陣  --------------------
re =''     
for i in range(len(c)):
    for j in range(3):
        re +=format(str(c[i][j])," >8")   #每個元素的顯示寬度為8格,螢幕一行只顯示矩陣的一行。     
    print(re)
    re=''

提交可通過: