ezmath_matrice.php
Ce fichier contient l'API de manipulation de matrices.
Une matrice est représentée par un tableau de lignes, chaque ligne étant elle-même un tableau de valeurs
numériques : l'élément de la ième ligne et de la jème colonne s'obtient par $matrice[$i][$j]. Une matrice
dont les lignes n'ont pas toutes la même longueur est considérée comme mal formée et les fonctions renvoient
alors un tableau vide.
Les clés des lignes comme des colonnes sont quelconques : elles peuvent identifier des unités spatiales,
comme le fait matrice_ponderation_spatiale(). Les calculs reprennent les valeurs par leur rang et les
fonctions restituent les identifiants d'origine dans leur résultat.
Comme dans le reste de la librairie, le type des valeurs n'est pas contrôlé : une matrice contenant des valeurs non numériques lève une erreur d'arithmétique PHP.
Table of Contents
Functions
- matrice_multiplier() : array<string|int, mixed>
- Effectue le produit de deux matrices compatibles.
- matrice_transposer() : array<string|int, mixed>
- Transpose une matrice, c'est-à-dire échange ses lignes et ses colonnes : la transposée d'une matrice d'ordre m × n est d'ordre n × m.
- matrice_dimensionner() : array<string|int, mixed>
- Détermine les dimensions d'une matrice et vérifie au passage qu'elle est correctement formée, c'est-à-dire que toutes ses lignes comptent le même nombre de colonnes.
Functions
matrice_multiplier()
Effectue le produit de deux matrices compatibles.
matrice_multiplier(array<string|int, mixed> $matrice1, array<string|int, mixed> $matrice2) : array<string|int, mixed>
Le produit n'est défini que si les matrices sont compatibles, à savoir la première d'ordre m × n et la seconde d'ordre n × p, le résultat étant alors d'ordre m × p.
Le produit hérite des identifiants des matrices d'origine : ses lignes portent les clés de lignes de la première matrice et ses colonnes les clés de colonnes de la seconde.
Parameters
- $matrice1 : array<string|int, mixed>
-
Matrice de gauche, d'ordre m × n
- $matrice2 : array<string|int, mixed>
-
Matrice de droite, d'ordre n × p
Return values
array<string|int, mixed> —La matrice produit ou tableau vide si les matrices sont mal formées ou incompatibles
matrice_transposer()
Transpose une matrice, c'est-à-dire échange ses lignes et ses colonnes : la transposée d'une matrice d'ordre m × n est d'ordre n × m.
matrice_transposer(array<string|int, mixed> $matrice) : array<string|int, mixed>
Les clés sont elles aussi échangées : les clés de colonnes de la matrice deviennent les clés de lignes de sa transposée, et réciproquement. Transposer une matrice symétrique - une matrice de pondération spatiale, par exemple - restitue donc exactement la matrice de départ, identifiants compris.
Parameters
- $matrice : array<string|int, mixed>
-
Matrice à transposer
Return values
array<string|int, mixed> —La matrice transposée ou tableau vide si la matrice est mal formée
matrice_dimensionner()
Détermine les dimensions d'une matrice et vérifie au passage qu'elle est correctement formée, c'est-à-dire que toutes ses lignes comptent le même nombre de colonnes.
matrice_dimensionner(array<string|int, mixed> $matrice) : array<string|int, mixed>
Parameters
- $matrice : array<string|int, mixed>
-
Tableau de lignes, chaque ligne étant elle-même un tableau de valeurs
Return values
array<string|int, mixed> —Dimensions de la matrice, à savoir :
- index
rows: nombre de lignes - index
cols: nombre de colonnes, ramené à zéro si la matrice est mal formée, ce qui permet aux fonctions appelantes d'identifier l'erreur