Drop links or images here to add them to the editor.

Definities

Matrix

Een matrix kan weergegeven worden als een geneste lijst.

Voorbeeld

De matrix m = $$ \left[ \begin{array}{ccc} 0 & 1 & 2 & 3\\ 10 & 11 & 12 & 13\\ 20 & 21 & 22 & 23\\ 30 & 31 & 32 & 33\\ \end{array} \right] $$
wordt in Python de lijst m = [[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]]

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.

Orde

De orde van een vierkante matrix is het aantal rijen (of kolommen) van de matrix. Een matrix met orde n heeft n rijen en n kolommen, in python geïndexeerd van 0 tot n-1.

Diagonalen

De hoofddiagonaal is de lijn van elementen in een vierkante matrix die van linksboven naar rechtsonder loopt.

Andere diagonalen zijn lijnen van elementen die evenwijdig lopen aan de hoofddiagonaal. De eerste diagonaal definiëren we als liggend links onder met één element, namelijk het element op positie (n-1, 0). De tweede diagonaal bevat de elementen op positie (n-2, 0) en (n-1, 1), enzovoort.

De laatste diagonaal definiëren we als liggend rechts boven en bevat één element, namelijk het element op positie (0, n-1).

diagonalen

Submatrix

Eensubmatrix van de gegeven matrix, is een vierkante matrix van een kleinere orde, die een deel is van de opgegeven matrix. Een submatrix wordt gedefinieerd door een startpositie (rijindex en kolomindex) en een orde.

Voorbeeld

Als m = $$ \left[ \begin{array}{ccc} 0 & 1 & 2 & 3\\ 10 & 11 & 12 & 13\\ 20 & 21 & 22 & 23\\ 30 & 31 & 32 & 33\\ \end{array} \right] $$ dan is de submatrix die begint op rijindex 1 en kolomindex 0 en van orde 3: $$ \left[ \begin{array}{ccc} 10 & 11 & 12\\ 20 & 21 & 22\\ 30 & 31 & 32\\ \end{array} \right] $$

Opgave

1. De functie submatrix

Schrijf een functie submatrix die vier argumenten heeft:

De functie retourneert de submatrix van de gegeven matrix, zoals hierboven gedefinieerd.

Voorbeelden

>>> >>> submatrix([[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]], 1, 0, 3)
[[10, 11, 12], [20, 21, 22], [30, 31, 32]]
>>> >>> submatrix([[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]], 0, 3, 1 )
[[3]]

2. De functie diagonalen

Schrijf een functie diagonalen die één argument heeft:

  • m een matrix = een geneste lijst die de representatie is van een vierkante matrix met orde n >= 1,zoals hierboven gedefinieerd

De functie retourneert een geneste lijst met de diagonalen van de gegeven matrix. De diagonalen zijn geordend van linksonder naar rechtsboven.

Voorbeelden

>>> >>> diagonalen([[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]])
[[30], [20, 31], [10, 21, 32], [0, 11, 22, 33], [1, 12, 23], [2, 13], [3]]
>>> >>> diagonalen([[0, 1], [10, 11]])
[[10], [0, 11], [1]]
>>> >>> diagonalen([[0]])
[[0]]