-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path04_nasobeni_vektoru_matice.py
52 lines (42 loc) · 1.33 KB
/
04_nasobeni_vektoru_matice.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Zadání:
#########
#
# Napište funkci multiVecMat(v,m), která vypočte součin vektoru v a matice m.
#
# Pokud nesouhlasí rozměry matice a vektoru, pak funkce vrací None.
#
# Otestujte Váš program na těchto datech:
#
# m=[[0,0,1],[0,1,0],[1,0,0]]
# v=[2, 4, 6]
#
###############################################################################
def multiVecMat( vector, matrix ):
"""
Pronásobí matici vektorem zprava.
Parametry:
----------
vector: list
Vektor
matrix: list
Pronásobená matice. Její dimenze se musí shodovat s dimenzí
vektoru.
Vrací:
list
Pole velikosti vektoru.
"""
# Vytvoří pole o velikosti vektoru
result = [0] * len( matrix[0] )
# Projde matici po řádcích
for r, row in enumerate( matrix ):
# Pokud nesedí rozměry, končíme
if len(row) != len(vector):
return None
# Projde každý prvek v řádku
for i, elem in enumerate( row ):
# K poli s výsledkem přičte na index aktuálního řádku výsledek
# násobení aktuálního prvku v řádku a jemu odpovídajícího
# prvku z vektoru.
result[r] += elem * vector[i]
return result
print( multiVecMat( [2, 4, 6], [[0,0,1],[0,1,0],[1,0,0]] ) )