User:V1c3nt

From Apache OpenOffice Wiki
Jump to: navigation, search

Matrices

Introduction

Une matrice est un bloc rectangulaire de données que Calc peut utiliser dans une formule.C'est-à-dire que les informations sont organisées en rangées et colonnes. Il peut s'agir d'une plage de cellules ou d'un tableau de données géré en interne par Calc.

Il ya donc 2 façons de spécifier un tableau dans une formule :

  • comme une plage de données, par exemple : A2:C3
Calc array4.png
  • comme une "matrice interne", par exemple : {1; 5; 3 | 6; 2; 4}. Il faut encadrer la matrice par des accolades "{" et "}". Les entrées d'une ligne sont séparées par un point virgule ";" et les ligne sont séparées par le caractère pipe "|". Les colonnes doivent toutes avoir le même nombre d'éléments.Une "matrice interne" peut avoir un contenu mixte (nombres ou texte), comme par exemple{ 4; 2; "chien" | -22; "chat"; 0} }. Par contre une "matrice interne" ne peut pas contenir de référence à d'autre cellules (e.g. A4), ou de formule (e.g. PI(), 2*3) ou de pourcentage (e.g. 5 %).


Calc array5.png

On peut donner un nom à une plage de cellules : sélectionner la plage et choisir Insertion - Noms - Définir ....


On peut donner un nom à une "matrice interne" : choisir Insertion - Noms - Dénfir... ; saisir la matrice (e.g. {1; 3; 2} inclure les accolades) dans le champ Assigné à.


Fonctions utilisables avec des matrices

Des fonctions comme SOMME(), MOYENNE() , RECHERCHE() accepetent une ou plusieurs matrices dans leurs paramètres.

Par exemple :

SOMME( A2:C3 ) retourne la somme des nombres de la plage de données A2:C3.
SOMME( {3; 2; 4} ) retourne 9, la somme des nombres de la matrice interne {3; 2; 4}.
SOMME attend/comprend également des valeurs simples (scalaires) : SOMME( B5; 7 ) retourne la somme de B5 et 7.

Fonctions qui (en principe) n'acceptent pas les matrices

Quelques fonctions comme ABS(), RACINE(), COS(), LEN() attendent des paramètres 'scalaires' - c'est-à-dire une seule valuer comme par exemple 354 or "chien" ou le contenu d'une cellule e.g. B5.

Exemples :

RACINE(4) retourne 2.
LEN("chien") retourne 5.

Cempendant, on peut tout de même utiliser une matrice quand une valeur unique est attendue - par exemple RACINE( {9; 4} ). Si on entre la formule 'normalement' en appuyant surEntrée, Calc va alors inerpréter la formule en utilisant une seule valeur de la matrice comme pour ce quit suit :

Si c'est une "matrice interne" :

Calc utilisera le première valeur (celle en haut à gauche de la matrice)


Exemple :
=RACINE( {9; 4 | 25; 16} ) Quand on presse Entrée retourne 3, la racine carrée du premier élément de la matrice (9).

Si c'est une plage de données :

1. Calc va retourner une erreur, sauf si la matrice est composée d'une seule ligne ou d'une seule colonne.
2. Pour une plage simple ligne ou simple colonne, Calc va utiliser la valeur qui est à l'intersection de la cellule qui contient la formule et de la matrice ligne/colonne (ou retourne une erreur s'il n'y a pas d'intersection).
Exemples :
Calc array1.png
La formule =ABS(B2:B5) est entrée 'normalement' dans la cellule D3, qui est dans la ligne 3. La cellule B3 est à l'intersection de B2:B5 et de la ligne 3, donc la formule interprétée est =ABS(B3).
Calc array2.png
La formule =LEN(B5:D5) est entrée 'normalement' dans la cellule B1, qui est dans la colonne B. La cellule B5 est à l'intersection de B5:D5 et de la colonne B, donc la formule interprétée est =LEN(B5).

Fonctions matricielles

La puissance réelle de l'utilisation des matricee apparaît lorsqu'on entre une formule d'une manière spéciale, comme une 'formule matricielle'. On fait cela en appuyant simultanément sur Ctrl-Maj-Entrée au lieu de de la touche Entrée (ou en cochant le case Matrice si on utilise l'Assitant Fonction).


Si dans la cellule B1 vous entrez ={3; 4} ‘normalement’ en appuyant sur Entrée, la première valeur 3 est affichée dans la cellule.

Si dans la cellule B2 vous entrez ={3; 4} mais en appuyant sur Ctrl-Maj-Entrée au lieu de Entrée, la cellule devient une formule matricielle. La formule retourne maintenant la matrice complète {3; 4}. La cellule B2 affiche 3 et la cellule C2 affiche 4.

Notez que si vous entrez la formule en utilisant la touche Entrée, sélectionner la cellule et simplement presser Ctrl-Maj-Entrée ne convertira pas la cellule en une expression matricelle - vous devez faire une modification dans la formule (comme ajouter et supprimer un carcatère), ou cocher la case matrice dans l'Assitant Fonction.

Si vous essayez maintebnant d'éditer la cellule B2 , on vous dit qu'il est impossible de modifier uniquement une partie de la matrice. Pour éditer une matrice vous devez sélectionner la matrice complètement soit avec la souris soit en appuyant sur Ctrl et / (maintenez enfoncée la touche Ctrl et appuyer sur la touche / du pavé numérique).

Calc array6.png

La barre de formules indique qu'il s'agit d'une formule matricielle en l'incluant entre des accolades {}. Vous n'avez pas besoin de les taper - elles disparaissent quand vous éditer la formule et Calcl les montre à nouveau quand vous avez fini l'édition.

Calcul avec des formules matricielles

Lorsque Calc interprète une formule matricielle il traite les matrices comme une série de valeurs (plutôt que d'utiliser une seule valeur), il calcule un résultat pour chaque élément de la matrice et retoure une matrice résultat.

Exemple :

Calc array3.png



=RACINE {16; 4; 25} ) validée en pressant Ctrl-Maj-Entrée au lieu de Entrée retourne une matrice de résultats, avec une ligne et 3 colonnes - {4; 2; 5}. Si la formule est dans la cellule B2, Calc place les résultats dans les cellules B2:D2. 4 est placé dans B2, 2 dans C2 et 5 dans D2.


Le processus de clacul s'effectue ainsi :

  1. Toutes les matrices prévues pour le calcul doivent avoir la même dimension
  2. Les résultats sont retrouné dans uen marice de même taille
  3. Le calcul est fait pour chacun des éléments à tour de rôle,avec le résultat retourné dans l'élément correspondant du tableau de sortie.

The process in effect works thus:

Exemple :

Avec la formule matricelle =RACINE( {16; 4; 25} ):

  1. Il y a une seule matrice, d'1 ligne et 3 colonnes.
  2. Le résultat sera retourné dans une matrice d'1 ligne et 3 colonnes.
  3. Le calcu est effectué pour 16 en premier, puis pour 4, puis pour 25, ce qui donne le résultat matricel {4; 2; 5}.

Exemple:

Avec la formule matricelle =RACINE( {8 | 18} * 2 ) dans la cellule A5:

  1. TIl y a une seule matrice, de 2 lignes et 1 colonne.
  2. Le résultat sera retourné dans une matrice wde 2 lignes et 1 colonne.
  3. Le processus de calcul est: premier élément RACINE(8*2) = 4; deuxième élément RACINE(18*2) = 6; ce qui donne le résultat matriciel {4 | 6} - Avec, 4 dans la cellule A5 et 6 dans la cellule A6.

Le résultat d'une expression matricelle est une matrice qui peut-être utilisé dans la formule.

Exemple :

=SOMME(RACINE( {16; 4; 25} )) comme une formule matricielle. Le calcule de RACINE( {16; 4; 25} ), dans un premier temps, donne le résultat {4; 2; 5}, cece qui donne par la suite SOMME( {4; 2; 5} ), qui retourne finallement le résultat dans la cellule de 4+2+5 = 11.

Exemple :

Avec la formule matricelle =SOMME(SI(A1:A4>0; B1:B4; 0))

  1. Les matrices A1:A4 et B1:B4 ont toutes les deux 4 lignes et 1 colonne.
  2. Le résultat du calcul de la matrice SI() sera une matrice de même dimension, avec SOMME() qui fera l'addition.
  3. Si A1>0 le premier élément est B1; ou 0. si A2>0 le second élément estB2; ou 0 ....Le tableau pur le calcul SOMME() contient les valeurs de B1:B4 si les valeurs adjacentes dans A1:A4 sont >0. La valeur finale affichée est la somme des valeurs dans B1:B4 pour lesquelles les valeurs adjacents dans A1:A4 sont >0.

Fonctions matricielles

Quelques fonctions donne leur résultat sous forme de matrice. Si elles retournent une matrice, elles doivent être saisies comme des formules matriceilles, en appyant sur Ctrl-Maj-Enter (ou en cochant la case Matrice si vous utilisez l'Assistant Formule". Si, malgé tout, elle sont validées normalement en apuyyant uniquement sur la touche Entrée, seulement l'élément situé en haut à gauche de la matrice calculée sera affiché. Ses fonctions sont listées sur la page Fonctions Matrice, se sont:


FREQUENCE, CROISSANCE, DROITEREG, LOGREG, DETERMAT, INVERSEMAT, PRODUITMAT, MUNIT, SOMMEPROD, SOMME.X2MY2,SOMME.X2YP2, SOMME.XMY2, TRANSPOSE, TENDANCE


Par exemple : =MUNIT(2) entrée comme une formule matricelle dans la cellule B1 retourne la matrice unité (identité) 2 x2 comme la matrice {1; 0 | 0; 1} - C'est-à-dire que les cellule B1, B2, C1, C2 affiche 1, 0, 0, 1. Si cette formule est entrée normalement seulement la valeur (1) est affichée dans la cellule B1.

Quelques fonctions (incluant certaines énumérées ci-dessus) prennent des paramètres qui sont forcément évalués comme formule matricelle, même si la formule est entrée 'normallement' :

DETERMAT, INVERSEMAT, PRODUITMAT, SOMMEPROD, SOMME.X2MY2, SOMME.X2YP2, SOMME.XMY2

Some functions (including some listed above) take parameters that are forced to evaluate as an array formula, even when the formula is entered 'normally':

MDETERM, MINVERSE, MMULT, SUMPRODUCT, SUMX2MY2, SUMX2PY2, SUMXMY2, CORREL, COVAR, FORECAST, FTEST, INTERCEPT, MODE, PEARSON, PROB, RSQ, SLOPE, STEYX, TTEST


For example: MODE(ABS(A1:A3)) (in normal mode) forces ABS(A1:A3) to be evaluated as an array formula, returning an array of the absolute values of A1:A3 from which MODE selects the most common value to be returned.

For example: PROB(A1:A5; B1:B5/100; 3) (in normal mode) forces B1:B5/100 to be evaluated as an array formula, returning an array where each value is one hundredth of its value in B1:B5 (perhaps because the probabilities were expressed in percent).


A few of these functions have some (array) parameters that are forced to evaluate as an array formula, and other (single value) parameters that evaluate normally.

For example: PROB(A1:A5; B1:B5; {3; 4}) (in normal mode) does not evaulate {3; 4} as an array, because this would mean PROB returning an array. It evaluates PROB(A1:A5; B1:B5; 3) - that is, it interprets {3; 4} in scalar mode, taking the 'top left' value 3. However, if entered as an array formula it will of course return an array.

Personal tools