Een matrix kan weergegeven worden als een geneste lijst.
De matrix m =
$$
\left[
\begin{array}{ccc}
1 & 2 & 3\\
4 & 5 & 6\\
7 & 8 & 9\\
\end{array} \right]
$$
wordt in Python de lijst
m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Een geneste lijst is een representatie van een vierkante matrix als elke sublijst evenveel elementen telt als de hoofdlijst.
Als in de opgave hieronder een vierkante matrix gegeven wordt, mag je ervan uitgaan dat dit een geneste lijst is die daaraan voldoet. De lege lijst [] wordt als een correcte matrix beschouwd met 0 rijen en 0 kolommen.
Schrijf een functie roteer
die één argument heeft:
m
een matrix = een geneste lijst die de representatie is van een vierkante matrix zoals hierboven gedefinieerdDe functie roteert de matrix een kwartslag naar rechts en retourneert een matrix van dezelfde dimensie.
De matrix $$ \left[ \begin{array}{ccc} 10 & 8 & 10\\ 4 & 0 & 7\\ 6 & 5 & 7\\ \end{array} \right] $$ wordt na rotatie: $$ \left[ \begin{array}{ccc} 6 & 4 & 10\\ 5 & 0 & 8\\ 7 & 7 & 10\\ \end{array} \right] $$
>>> >>> roteer([[10, 8, 10], [4, 0, 7], [6, 5, 7]]) [[6, 4, 10], [5, 0, 8], [7, 7, 10]]
Schrijf een functie roteren
die twee argumenten heeft:
m
een matrix = een geneste lijst die de representatie is van een vierkante matrix zoals hierboven gedefinieerdg
aantal graden = een geheel veelvoud van 90De functie roteert de matrix over g graden en retourneert een matrix van dezelfde dimensie.
1. De matrix $$ \left[ \begin{array}{ccc} 10 & 8 & 10\\ 4 & 0 & 7\\ 6 & 5 & 7\\ \end{array} \right] $$ wordt na rotatie over 90 graden $$ \left[ \begin{array}{ccc} 6 & 4 & 10\\ 5 & 0 & 8\\ 7 & 7 & 10\\ \end{array} \right] $$
2. De matrix $$ \left[ \begin{array}{ccc} 10 & 8 & 10\\ 4 & 0 & 7\\ 6 & 5 & 7\\ \end{array} \right] $$ wordt na rotatie over -90 graden $$ \left[ \begin{array}{ccc} 10 & 7 & 7\\ 8 & 0 & 5\\ 10 & 4 & 6\\ \end{array} \right] $$
>>> >>> roteren([[10, 8, 10], [4, 0, 7], [6, 5, 7]], 90) [[6, 4, 10], [5, 0, 8], [7, 7, 10]] >>> roteren([[36, 11], [17, 41]], 180) [[41, 17], [11, 36]] >>> roteren([[10, 8, 10], [4, 0, 7], [6, 5, 7]], -90) [[[10, 7, 7], [8, 0, 5], [10, 4, 6]]
Afbeelding roteren: Wanneer je een foto of afbeelding wilt draaien, zoals in fotobewerkingssoftware (bijvoorbeeld Photoshop), wordt de afbeelding vaak als een matrix van kleurwaarden (RGB) behandeld. Door de matrix te roteren, wordt de afbeelding gedraaid.