org.nuiton.math.matrix
Interface MatrixND

All Superinterfaces:
Cloneable, Serializable
All Known Implementing Classes:
AbstractMatrixND, MatrixNDImpl, SubMatrix

public interface MatrixND
extends Serializable, Cloneable

MatrixND. Created: 29 oct. 2004

Version:
$Revision: 187 $ Mise a jour: $Date: 2009-10-16 19:17:29 +0200 (ven., 16 oct. 2009) $ par : $Author: tchemit $
Author:
Benjamin Poussin

Method Summary
 MatrixND add(MatrixND m)
          Addition la matrice courante avec la matrice passe en parametre et ce retourne elle meme.
 MatrixND adds(double d)
          Addition d'un scalaire à une matrice.
 MatrixND clone()
          Créer une nouvelle instance clonée de celle-ci
 MatrixND copy()
          Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.
 MatrixND cut(int dim, int[] toCut)
          Permet de supprimer des éléments de la matrice.
 MatrixND divs(double d)
          Multiplication d'une matrice par un scalaire.
 boolean equalsValues(MatrixND mat)
          Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques
 void exportCSV(Writer writer, boolean withSemantics)
          Export dans un writer au format CSV de la matrice
 void fromList(List<?> list)
          Permet de charger une matrice a partir d'une representation List
 int[] getDim()
          Retourne les dimensions de la matrice.
 int getDim(int d)
          Retourne la dimension de la matrice dans la dimension d.
 int getDimCount()
          Retourne le nombre de dimensions de la matrice.
 String[] getDimensionName()
          Deprecated. (since 1.0.3) Use #getDimensionNames()
 String getDimensionName(int dim)
          Retourne le nom de la dimension demandé.
 String[] getDimensionNames()
          Permet de recuperer les noms des dimension.
 MatrixFactory getFactory()
          Retourne la factory qui a permit de creer la matrice.
 double getMaxOccurence()
          Retourne la valeur la plus courrement rencontrer dans un tableau. si plusieurs valeurs ont le même nombre d'occurence la plus petite valeur est retourné.
 String getName()
          Retourne le nom de la matrice
 int getNbDim()
          Deprecated. use #getDimCount() instead
 List<?> getSemantic(int dim)
          Retourne la semantique pour une dimension
 List<?>[] getSemantics()
          Donne toutes les semantiques de la matrice.
 List<?> getSemantics(int dim)
          Deprecated. use #getSemantic(int) instead
 MatrixND getSubMatrix(int dim, int[] elem)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixND getSubMatrix(int dim, int start, int nb)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixND getSubMatrix(int dim, Object... elem)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixND getSubMatrix(int dim, Object start, int nb)
          Permet de prendre une sous matrice dans la matrice courante.
 double getValue(int x)
           
 double getValue(int[] dimensions)
          Renvoie un element de la matrice demandée en fonction des dimensions passé en paramètre.
 double getValue(int x, int y)
           
 double getValue(int x, int y, int z)
           
 double getValue(int x, int y, int z, int t)
           
 double getValue(Object x)
           
 double getValue(Object[] coordinates)
           
 double getValue(Object x, Object y)
           
 double getValue(Object x, Object y, Object z)
           
 double getValue(Object x, Object y, Object z, Object t)
           
 void importCSV(Reader reader, int[] origin)
          Import depuis un reader au format CSV des données dans la matrice
 boolean isSupportedCSV()
          Determine si la matrice supporte l'import et l'export CSV
 MatrixIterator iterator()
          Retourne un iterator sur toute la matrice.
 MatrixND map(MapFunction f)
          Applique une fonction sur chaque valeur de la matrice.
 MatrixND minus(MatrixND m)
          Soustrai la matrice courante avec la matrice passe en parametre et ce retourne elle meme.
 MatrixND minuss(double d)
          Soustraction d'un scalaire à une matrice
 MatrixND mult(MatrixND m)
          Multiplication normal (produit matriciel) de 2 matrices 2D.
 MatrixND mults(double d)
          Multiplication d'une matrice par un scalaire.
 MatrixND paste(int[] origin, MatrixND mat)
          Copie une matrice dans la matrice actuelle.
 MatrixND paste(MatrixND mat)
          Copie une matrice dans la matrice actuelle.
 MatrixND pasteSemantics(MatrixND mat)
          Modifie la matrice actuel en metant les valeurs de mat passé en parametre La copie se fait en fonction de la semantique, si un element dans une dimension n'est pas trouvé, alors il est passé
 MatrixND reduce()
          Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée.
 MatrixND reduce(int minNbDim)
          Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée.
 MatrixND reduceDims(int... dims)
          Reduit le matrice seulement sur les dimensions passées en argument.
 void setDimensionName(int dim, String name)
          Permet de mettre un nom à une dimension.
 void setDimensionName(String[] names)
          Deprecated. (since 1.0.3) Use #setDimensionNames(String[])
 void setDimensionNames(String[] names)
          Permet de mettre des noms aux différentes dimension.
 void setName(String name)
          Permet de donner un nom à la matrice.
<E> void
setSemantic(int dim, List<E> sem)
          Modifie la semantique d'une dimension
<E> void
setSemantics(int dim, List<E> sem)
          Deprecated. use #setSemantics(int, List) instead
 void setValue(int[] dimensions, double d)
          Modifie un element de la matrice en fonction des dimensions passé en paramètre.
 void setValue(int x, double d)
           
 void setValue(int x, int y, double d)
           
 void setValue(int x, int y, int z, double d)
           
 void setValue(int x, int y, int z, int t, double d)
           
 void setValue(Object[] coordinates, double d)
           
 void setValue(Object x, double d)
           
 void setValue(Object x, Object y, double d)
           
 void setValue(Object x, Object y, Object z, double d)
           
 void setValue(Object x, Object y, Object z, Object t, double d)
           
 double sumAll()
          Somme toutes les valeurs de la matrice.
 MatrixND sumOverDim(int dim)
          Somme la matrice sur une dimension donnée.
 MatrixND sumOverDim(int dim, int step)
          Somme la matrice mais la matrice reste de la même dimension. la somme permet juste de regrouper dans une dimension un certain nombre de valeur.
 MatrixND sumOverDim(int dim, int start, int nb)
           
 List<?> toList()
          Donne la matrice sous forme de List de list ... de double
 MatrixND transpose()
          retourne le transpose de la matrice.
 

Method Detail

getFactory

MatrixFactory getFactory()
Retourne la factory qui a permit de creer la matrice.

Returns:
la MatrixFactory
See Also:
MatrixFactory

getSemantics

List<?>[] getSemantics()
Donne toutes les semantiques de la matrice. Si la matrice n'a pas de semantique retourne null.

Returns:
la liste des semantics

getSemantics

@Deprecated
List<?> getSemantics(int dim)
Deprecated. use #getSemantic(int) instead

Retourne la semantique pour une dimension

Parameters:
dim - la dimension pour lequel on veut la semantique
Returns:
la semantique de la dimension on null s'il n'y a pas de semantique

getSemantic

List<?> getSemantic(int dim)
Retourne la semantique pour une dimension

Parameters:
dim - la dimension pour lequel on veut la semantique
Returns:
la semantique de la dimension on null s'il n'y a pas de semantique

setSemantics

@Deprecated
<E> void setSemantics(int dim,
                                 List<E> sem)
Deprecated. use #setSemantics(int, List) instead

Modifie la semantique d'une dimension

Type Parameters:
E - data type
Parameters:
dim - dimension to modify semantic
sem - new semantic to set

setSemantic

<E> void setSemantic(int dim,
                     List<E> sem)
Modifie la semantique d'une dimension

Type Parameters:
E - data type
Parameters:
dim - dimension to modify semantic
sem - new semantic to set

setName

void setName(String name)
Permet de donner un nom à la matrice.

Parameters:
name - name to set

getName

String getName()
Retourne le nom de la matrice

Returns:
le nom de la matrice ou la chaine vide si pas de nom.

setDimensionName

@Deprecated
void setDimensionName(String[] names)
Deprecated. (since 1.0.3) Use #setDimensionNames(String[])

Permet de mettre des noms aux différentes dimension.

Parameters:
names - names to set

setDimensionNames

void setDimensionNames(String[] names)
Permet de mettre des noms aux différentes dimension.

Parameters:
names - names to set
Since:
1.0.3

getDimensionName

@Deprecated
String[] getDimensionName()
Deprecated. (since 1.0.3) Use #getDimensionNames()

Permet de recuperer les noms des dimension.

Returns:
tableau des noms de dimension.

getDimensionNames

String[] getDimensionNames()
Permet de recuperer les noms des dimension.

Returns:
tableau des noms de dimension.
Since:
1.0.3

setDimensionName

void setDimensionName(int dim,
                      String name)
Permet de mettre un nom à une dimension.

Parameters:
dim - la dimension dont on veut changer le nom
name - le nom à donner à la dimension

getDimensionName

String getDimensionName(int dim)
Retourne le nom de la dimension demandé.

Parameters:
dim - la dimension dont on veut le nom
Returns:
le nom de la dimension ou la chaine vide si la dimension n'a pas de nom @ si la dimension demandé n'est pas valide

getMaxOccurence

double getMaxOccurence()
Retourne la valeur la plus courrement rencontrer dans un tableau. si plusieurs valeurs ont le même nombre d'occurence la plus petite valeur est retourné.

Returns:
la valeur la plus nombreuse dans le tableau

getNbDim

int getNbDim()
Deprecated. use #getDimCount() instead

Retourne le nombre de dimensions de la matrice.

Returns:
le nombre de dimensions de la matrice.

getDimCount

int getDimCount()
Retourne le nombre de dimensions de la matrice.

Returns:
le nombre de dimensions de la matrice.

getDim

int[] getDim()
Retourne les dimensions de la matrice.

Returns:
matrix dimension

getDim

int getDim(int d)
Retourne la dimension de la matrice dans la dimension d.

Parameters:
d - dimension
Returns:
matrix dimension

iterator

MatrixIterator iterator()
Retourne un iterator sur toute la matrice.

Returns:
matrix iterator

map

MatrixND map(MapFunction f)
Applique une fonction sur chaque valeur de la matrice.

Parameters:
f - function to apply
Returns:
this

getValue

double getValue(int[] dimensions)
Renvoie un element de la matrice demandée en fonction des dimensions passé en paramètre.
Exemple: Si on a un matrice 3D.
getValue(1,1,1) retourne un element de la matrice.

Parameters:
dimensions - les différentes dimension à extraire. Le tableau doit contenir toutes les dimensions de la matrice, et seulement des nombres positif
Returns:
un entier double.

getValue

double getValue(int x)

getValue

double getValue(int x,
                int y)

getValue

double getValue(int x,
                int y,
                int z)

getValue

double getValue(int x,
                int y,
                int z,
                int t)

getValue

double getValue(Object[] coordinates)

getValue

double getValue(Object x)

getValue

double getValue(Object x,
                Object y)

getValue

double getValue(Object x,
                Object y,
                Object z)

getValue

double getValue(Object x,
                Object y,
                Object z,
                Object t)

setValue

void setValue(int[] dimensions,
              double d)
Modifie un element de la matrice en fonction des dimensions passé en paramètre.
Exemple: Si on a un matrice 3D.
set([1,1,1], m) modifie un element de la matrice.

Parameters:
dimensions - les différentes dimension à extraire.
d - l'entier double qui doit remplacer l'entier double spécifié par l'argument dimensions

setValue

void setValue(int x,
              double d)

setValue

void setValue(int x,
              int y,
              double d)

setValue

void setValue(int x,
              int y,
              int z,
              double d)

setValue

void setValue(int x,
              int y,
              int z,
              int t,
              double d)

setValue

void setValue(Object[] coordinates,
              double d)

setValue

void setValue(Object x,
              double d)

setValue

void setValue(Object x,
              Object y,
              double d)

setValue

void setValue(Object x,
              Object y,
              Object z,
              double d)

setValue

void setValue(Object x,
              Object y,
              Object z,
              Object t,
              double d)

copy

MatrixND copy()
Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.

Returns:
new matrix

clone

MatrixND clone()
Créer une nouvelle instance clonée de celle-ci

Returns:
new matrix

sumAll

double sumAll()
Somme toutes les valeurs de la matrice.

Returns:
sum result

sumOverDim

MatrixND sumOverDim(int dim)
Somme la matrice sur une dimension donnée. La matrice résultat à le même nombre de dimension, pas la dimension sommer, ne contient qu'une ligne.

par exemple pour la matrice suivante si on somme sur la dimension 1 cela donnera

 1 2 3
 2 3 4
 3 4 5
 
 6 9 12
 

Parameters:
dim - la dimension sur lequel il faut faire la somme
Returns:
new matrix

sumOverDim

MatrixND sumOverDim(int dim,
                    int step)
Somme la matrice mais la matrice reste de la même dimension. la somme permet juste de regrouper dans une dimension un certain nombre de valeur.

pour la matrice suivante :

 1 2 3 4
 2 3 4 5
 3 4 5 6
 4 5 6 7
 
la somme sur la dimension 1 avec un pas de 2 donnera :
 3 5 7  9
 7 9 11 13
 
c'est à dire que la ligne 0 et la ligne 1 sont sommées. ainsi que la ligne 2 avec la ligne 3.

Parameters:
dim - la dimension sur lequel il faut faire les sommes
step - le pas qu'il faut utiliser pour regrouper les elements. Si le pas est inférieur à 0, le pas se comporte comme si on avait passé en argument la taille de la dimension. Un pas de 0 ou 1, retourne juste une copie de la matrice actuelle. si la division du pas avec la taille de la dimension ne donne pas un nombre entier, les elements restants ne sont pas pris en compte. Par exemple si la dimension a 10 élements et que l'on donne un pas de 3, dans la matrice resultat la dimension aura 3 elements qui seront la somme par 3 des 9 premiers element de la matrice courante. Le 10eme element sera perdu.
Returns:
une nouvelle matrice avec le meme nombre de dimension mais dont la dimension passé en paramètre aura comme taille, le resultat de la division entier de la taille actuelle par le step

sumOverDim

MatrixND sumOverDim(int dim,
                    int start,
                    int nb)

cut

MatrixND cut(int dim,
             int[] toCut)
Permet de supprimer des éléments de la matrice. Par exemple, pour la matrice
 1 2 3 4
 2 3 4 5
 3 4 5 6
 4 5 6 7
 
un cut(1, [0,2]) donnera
 2 4
 3 5
 4 6
 5 7
 

Parameters:
dim - la dimension dans lequel il faut supprimer des éléments
toCut - les éléments à supprimer
Returns:
une nouvelle matrice, la matrice actuelle n'est pas modifiée

paste

MatrixND paste(MatrixND mat)
Copie une matrice dans la matrice actuelle. La matrice à copier à le même nombre de dimension. Si la matrice à copier est trop grande seul les éléments pouvant être copier le seront.

Parameters:
mat - la matrice à copier
Returns:
return la matrice courante.

paste

MatrixND paste(int[] origin,
               MatrixND mat)
Copie une matrice dans la matrice actuelle. La matrice à copier à le même nombre de dimension. Si la matrice à copier est trop grande seul les éléments pouvant être copier le seront.

Parameters:
origin - le point à partir duquel il faut faire la copie
mat - la matrice à copier
Returns:
return la matrice courante.

pasteSemantics

MatrixND pasteSemantics(MatrixND mat)
Modifie la matrice actuel en metant les valeurs de mat passé en parametre La copie se fait en fonction de la semantique, si un element dans une dimension n'est pas trouvé, alors il est passé

Parameters:
mat - matrix to paste
Returns:
new matrix

getSubMatrix

MatrixND getSubMatrix(int dim,
                      Object start,
                      int nb)
Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.

Parameters:
dim - la dimension dans lequel on veut une sous matrice si dim est négatif alors la dimension est prise à partir de la fin par exemple si l'on veut la derniere dimension il faut passer -1 pour dim
start - la position dans dim d'ou il faut partir pour prendre la sous matrice.
nb - le nombre d'élément à prendre dans la dimension. si nb est inférieur ou égal à 0 alors cela indique qu'il faut prendre tous les éléments jusqu'à la fin de la dimension.
Returns:
new matrix

getSubMatrix

MatrixND getSubMatrix(int dim,
                      int start,
                      int nb)
Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.

Parameters:
dim - la dimension dans lequel on veut une sous matrice
start - la position dans dim d'ou il faut partir pour prendre la sous matrice. 0 <= start < dim.size si start est négatif alors la position de départ est calculé par rapport à la fin de la dimension, pour avoir le dernier élément il faut passer -1
nb - le nombre d'élément à prendre dans la dimension si nb est inférieur ou égal à 0 alors cela indique qu'il faut prendre tous les éléments jusqu'à la fin de la dimension.
Returns:
new matrix

getSubMatrix

MatrixND getSubMatrix(int dim,
                      Object... elem)
Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.

Parameters:
dim - la dimension dans lequel on veut une sous matrice
elem - les éléments dans la dimension à conserver
Returns:
new matrix

getSubMatrix

MatrixND getSubMatrix(int dim,
                      int[] elem)
Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.

Parameters:
dim - la dimension dans lequel on veut une sous matrice
elem - les éléments dans la dimension à conserver
Returns:
new matrix

add

MatrixND add(MatrixND m)
Addition la matrice courante avec la matrice passe en parametre et ce retourne elle meme.

Parameters:
m - matrix to add
Returns:
new matrix

minus

MatrixND minus(MatrixND m)
Soustrai la matrice courante avec la matrice passe en parametre et ce retourne elle meme.

Parameters:
m - matrix to minus
Returns:
new matrix

transpose

MatrixND transpose()
retourne le transpose de la matrice.

Returns:
transposed matrix

reduce

MatrixND reduce()
Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée. Au pire cette méthode retourne une matrice à une seule dimension à un seul élément.

Returns:
une nouvelle matrice plus petite que la matrice actuelle ou egal s'il n'y a aucune dimension à supprimer

reduce

MatrixND reduce(int minNbDim)
Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée. Au pire cette méthode retourne une matrice à une seule dimension à un seul élément.

Parameters:
minNbDim - le nombre minimum de dimension que l'on souhaite pour la matrice résultat
Returns:
une nouvelle matrice plus petite que la matrice actuelle ou egal s'il n'y a aucune dimension à supprimer

reduceDims

MatrixND reduceDims(int... dims)
Reduit le matrice seulement sur les dimensions passées en argument. Si une des dimensions passées en arguement n'a pas un seul élément, cette dimension n'est pas prise en compte.

Parameters:
dims - les dimensions sur lequel il faut faire la reduction
Returns:
une nouvelle matrice

mult

MatrixND mult(MatrixND m)
Multiplication normal (produit matriciel) de 2 matrices 2D.

Parameters:
m - matrix to mult
Returns:
Retourne une nouvelle matrice.

mults

MatrixND mults(double d)
Multiplication d'une matrice par un scalaire.

Parameters:
d - scalaire
Returns:
new matrix

divs

MatrixND divs(double d)
Multiplication d'une matrice par un scalaire.

Parameters:
d - scalaire
Returns:
new matrix

adds

MatrixND adds(double d)
Addition d'un scalaire à une matrice.

Parameters:
d - scalaire
Returns:
new matrix

minuss

MatrixND minuss(double d)
Soustraction d'un scalaire à une matrice

Parameters:
d - scalaire
Returns:
new matrix

toList

List<?> toList()
Donne la matrice sous forme de List de list ... de double

Returns:
list matrix representation

fromList

void fromList(List<?> list)
Permet de charger une matrice a partir d'une representation List

Parameters:
list - la matrice sous forme de List de list ... de double

isSupportedCSV

boolean isSupportedCSV()
Determine si la matrice supporte l'import et l'export CSV

Returns:
support du CSV

importCSV

void importCSV(Reader reader,
               int[] origin)
               throws IOException
Import depuis un reader au format CSV des données dans la matrice

Parameters:
reader - le reader à importer
origin - le point à partir duquel il faut faire l'importation
Throws:
IOException

exportCSV

void exportCSV(Writer writer,
               boolean withSemantics)
               throws IOException
Export dans un writer au format CSV de la matrice

Parameters:
writer - le writer ou copier la matrice
withSemantics - export ou pas des semantiques de la matrice dans le writer
Throws:
IOException

equalsValues

boolean equalsValues(MatrixND mat)
Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques

Parameters:
mat -
Returns:
equlaity on values


Copyright © 2004-2010 CodeLutin. All Rights Reserved.