Class AbstractMatrixND

java.lang.Object
org.nuiton.math.matrix.AbstractMatrixND
All Implemented Interfaces:
Serializable, Cloneable, MatrixND
Direct Known Subclasses:
MatrixNDImpl, MatrixProxy, SubMatrix

public abstract class AbstractMatrixND extends Object implements MatrixND
Abstract matrix class with all dimension and semantics support (but no internal value storage). Created: 29 oct. 2004
Version:
$Revision$ Mise a jour: $Date$ par : $Author$
Author:
Benjamin Poussin <poussin@codelutin.com>
See Also:
  • Field Details

    • dimHelper

      protected transient DimensionHelper dimHelper
    • factory

      protected transient MatrixFactory factory
    • name

      protected String name
    • dimNames

      protected String[] dimNames
    • dim

      protected int[] dim
    • semantics

      protected List<?>[] semantics
    • defaultValue

      @Deprecated protected double defaultValue
      Deprecated.
      as of 2.1 seams unused
    • CSV_SEPARATOR

      public static final char CSV_SEPARATOR
      Separateur CSV par défaut le point virgule.
      See Also:
    • NUMBER_REGEX

      protected static final String NUMBER_REGEX
      See Also:
    • NUMBER

      protected static final Pattern NUMBER
  • Constructor Details

  • Method Details

    • init

      protected void init(int[] dim)
    • copy

      public MatrixND copy()
      Description copied from interface: MatrixND
      Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.
      Specified by:
      copy in interface MatrixND
      Returns:
      new matrix
    • clone

      public MatrixND clone()
      Description copied from interface: MatrixND
      Créer une nouvelle instance clonée de celle-ci
      Specified by:
      clone in interface MatrixND
      Overrides:
      clone in class Object
      Returns:
      new matrix
    • getFactory

      public MatrixFactory getFactory()
      Retourne la factory utilisée pour créer cette matrice, la factory peut-être réutilisé pour créer d'autre matrice si besoin.
      Specified by:
      getFactory in interface MatrixND
      Returns:
      la MatrixFactory
      See Also:
    • getSemantics

      public List[] getSemantics()
      Description copied from interface: MatrixND
      Donne toutes les semantiques de la matrice. Si la matrice n'a pas de semantique retourne null.
      Specified by:
      getSemantics in interface MatrixND
      Returns:
      la liste des semantics
    • getSemantics

      @Deprecated public List getSemantics(int dim)
      Deprecated.
      Use #getSemantic(dim)
      Retourne la semantique pour une dimension.
      Specified by:
      getSemantics in interface MatrixND
      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

      public List getSemantic(int dim)
      Description copied from interface: MatrixND
      Retourne la semantique pour une dimension.
      Specified by:
      getSemantic in interface MatrixND
      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 public <E> void setSemantics(int dim, List<E> sem)
      Deprecated.
      Use #setSemantic(dim, List)
      Modifie la semantique d'une dimension.
      Specified by:
      setSemantics in interface MatrixND
      Type Parameters:
      E - data type
      Parameters:
      dim - dimension to modify semantic
      sem - new semantic to set
    • setSemantic

      public <E> void setSemantic(int dim, List<E> sem)
      Description copied from interface: MatrixND
      Modifie la semantique d'une dimension.
      Specified by:
      setSemantic in interface MatrixND
      Type Parameters:
      E - data type
      Parameters:
      dim - dimension to modify semantic
      sem - new semantic to set
    • setName

      public void setName(String name)
      Description copied from interface: MatrixND
      Permet de donner un nom à la matrice.
      Specified by:
      setName in interface MatrixND
      Parameters:
      name - name to set
    • getName

      public String getName()
      Description copied from interface: MatrixND
      Retourne le nom de la matrice.
      Specified by:
      getName in interface MatrixND
      Returns:
      le nom de la matrice ou la chaine vide si pas de nom.
    • getDimensionNames

      public String[] getDimensionNames()
      Description copied from interface: MatrixND
      Permet de recuperer les noms des dimension.
      Specified by:
      getDimensionNames in interface MatrixND
      Returns:
      tableau des noms de dimension.
    • setDimensionNames

      public void setDimensionNames(String[] names)
      Description copied from interface: MatrixND
      Permet de mettre des noms aux différentes dimension.
      Specified by:
      setDimensionNames in interface MatrixND
      Parameters:
      names - names to set
    • getDimensionName

      @Deprecated public String[] getDimensionName()
      Deprecated.
      Use #getDimensionNames()
      Permet de recuperer les noms des dimension.
      Specified by:
      getDimensionName in interface MatrixND
      Returns:
      tableau des noms de dimension.
    • setDimensionName

      @Deprecated public void setDimensionName(String[] names)
      Deprecated.
      Use #setDimensionName(String[])
      Permet de mettre des noms aux différentes dimension.
      Specified by:
      setDimensionName in interface MatrixND
      Parameters:
      names - names to set
    • setDimensionName

      public void setDimensionName(int dim, String name)
      Description copied from interface: MatrixND
      Permet de mettre un nom à une dimension.
      Specified by:
      setDimensionName in interface MatrixND
      Parameters:
      dim - la dimension dont on veut changer le nom
      name - le nom à donner à la dimension
    • getDimensionName

      public String getDimensionName(int dim)
      Description copied from interface: MatrixND
      Retourne le nom de la dimension demandée.
      Specified by:
      getDimensionName in interface MatrixND
      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

      @Deprecated public double getMaxOccurence()
      Deprecated.
      Description copied from interface: MatrixND
      Retourne la valeur la plus couramment rencontree dans un tableau. Si plusieurs valeurs ont le même nombre d'occurrence la plus petite valeur est retourné.
      Specified by:
      getMaxOccurence in interface MatrixND
      Returns:
      la valeur la plus nombreuse dans le tableau
    • getMaxOccurrence

      public double getMaxOccurrence()
      Description copied from interface: MatrixND
      Retourne la valeur la plus courrement rencontrer dans un tableau. Si plusieurs valeurs ont le même nombre d'occurrence la plus petite valeur est retourné.
      Specified by:
      getMaxOccurrence in interface MatrixND
      Returns:
      la valeur la plus nombreuse dans le tableau
    • getNbDim

      @Deprecated public int getNbDim()
      Deprecated.
      use #getDimCount() instead
      Retourne le nombre de dimensions de la matrice.
      Specified by:
      getNbDim in interface MatrixND
      Returns:
      le nombre de dimensions de la matrice.
    • getDimCount

      public int getDimCount()
      Description copied from interface: MatrixND
      Retourne le nombre de dimensions de la matrice.
      Specified by:
      getDimCount in interface MatrixND
      Returns:
      le nombre de dimensions de la matrice.
    • getDim

      public int[] getDim()
      Description copied from interface: MatrixND
      Retourne les dimensions de la matrice.
      Specified by:
      getDim in interface MatrixND
      Returns:
      matrix dimension
    • getDim

      public int getDim(int d)
      Description copied from interface: MatrixND
      Retourne la dimension de la matrice dans la dimension d.
      Specified by:
      getDim in interface MatrixND
      Parameters:
      d - dimension
      Returns:
      matrix dimension
    • size

      public long size()
      Description copied from interface: MatrixND
      Retourne le nombre d'element dans la matrice [2, 3, 5] donnera 30
      Specified by:
      size in interface MatrixND
      Returns:
      le nombre d'element dans la matrice
    • map

      public MatrixND map(MapFunction f)
      Retourne la matrice elle meme. Les modifications sont faites directement dessus
      Specified by:
      map in interface MatrixND
      Parameters:
      f - function to apply
      Returns:
      this
    • getValue

      public double getValue(Object[] coordinates)
      Description copied from interface: MatrixND
      Renvoie un element de la matrice demandée en fonction des dimensions passé en paramètre.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      coordinates - semantics values to get matrix value
      Returns:
      double value at specified dimensions
    • getValue

      public double getValue(Object x)
      Description copied from interface: MatrixND
      Return a 1D matrix value.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      x - first dimension
      Returns:
      double value at specified dimensions
    • getValue

      public double getValue(Object x, Object y)
      Description copied from interface: MatrixND
      Return a 2D matrix value.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      x - first dimension
      y - second dimension
      Returns:
      double value at specified dimensions
    • getValue

      public double getValue(Object x, Object y, Object z)
      Description copied from interface: MatrixND
      Return a 3D matrix value.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      x - first dimension
      y - second dimension
      z - third dimension
      Returns:
      double value at specified dimensions
    • getValue

      public double getValue(Object x, Object y, Object z, Object t)
      Description copied from interface: MatrixND
      Return a 4D matrix value.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      x - first dimension
      y - second dimension
      z - third dimension
      t - fourth dimension
      Returns:
      double value at specified dimensions
    • getValue

      public double getValue(int x)
      Description copied from interface: MatrixND
      Return a 1D matrix value.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      x - first dimension index
      Returns:
      double value at specified dimensions
    • getValue

      public double getValue(int x, int y)
      Description copied from interface: MatrixND
      Return a 2D matrix value.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      x - first dimension index
      y - second dimension index
      Returns:
      double value at specified dimensions
    • getValue

      public double getValue(int x, int y, int z)
      Description copied from interface: MatrixND
      Return a 3D matrix value.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      x - first dimension index
      y - second dimension index
      z - third dimension index
      Returns:
      double value at specified dimensions
    • getValue

      public double getValue(int x, int y, int z, int t)
      Description copied from interface: MatrixND
      Return a 4D matrix value.
      Specified by:
      getValue in interface MatrixND
      Parameters:
      x - first dimension index
      y - second dimension index
      z - third dimension index
      t - fourth dimension index
      Returns:
      double value at specified dimensions
    • setValue

      public void setValue(Object[] coordinates, double d)
      Description copied from interface: MatrixND
      Modifie un element de la matrice en fonction des dimensions passé en paramètre.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      coordinates - semantics value to set matrix value
      d - new double value to set into matrix at specified dimensions
    • setValue

      public void setValue(Object x, double d)
      Description copied from interface: MatrixND
      Modify a 1D matrix value.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      x - first dimension index
      d - new double value to set into matrix at specified dimensions
    • setValue

      public void setValue(Object x, Object y, double d)
      Description copied from interface: MatrixND
      Modify a 2D matrix value.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      x - first dimension
      y - second dimension
      d - new double value to set into matrix at specified dimensions
    • setValue

      public void setValue(Object x, Object y, Object z, double d)
      Description copied from interface: MatrixND
      Modify a 3D matrix value.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      x - first dimension
      y - second dimension
      z - third dimension
      d - new double value to set into matrix at specified dimensions
    • setValue

      public void setValue(Object x, Object y, Object z, Object t, double d)
      Description copied from interface: MatrixND
      Modify a 4D matrix value.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      x - first dimension
      y - second dimension
      z - third dimension
      t - fourth dimension
      d - new double value to set into matrix at specified dimensions
    • setValue

      public void setValue(int x, double d)
      Description copied from interface: MatrixND
      Modify a 1D matrix value.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      x - first dimension index
      d - new double value to set into matrix at specified dimensions
    • setValue

      public void setValue(int x, int y, double d)
      Description copied from interface: MatrixND
      Modify a 2D matrix value.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      x - first dimension index
      y - second dimension index
      d - new double value to set into matrix at specified dimensions
    • setValue

      public void setValue(int x, int y, int z, double d)
      Description copied from interface: MatrixND
      Modify a 3D matrix value.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      x - first dimension index
      y - second dimension index
      z - third dimension index
      d - new double value to set into matrix at specified dimensions
    • setValue

      public void setValue(int x, int y, int z, int t, double d)
      Description copied from interface: MatrixND
      Modify a 4D matrix value.
      Specified by:
      setValue in interface MatrixND
      Parameters:
      x - first dimension index
      y - second dimension index
      z - third dimension index
      t - fourth dimension index
      d - new double value to set into matrix at specified dimensions
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • equals

      public boolean equals(MatrixND mat)
    • equalsValues

      public boolean equalsValues(MatrixND mat)
      Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques
      Specified by:
      equalsValues in interface MatrixND
      Parameters:
      mat -
      Returns:
      equality on values
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toList

      public List<?> toList()
      Description copied from interface: MatrixND
      Donne la matrice sous forme de List de list ... de double
      Specified by:
      toList in interface MatrixND
      Returns:
      list matrix representation
    • fromList

      public void fromList(List<?> list)
      Description copied from interface: MatrixND
      Permet de charger une matrice a partir d'une representation List
      Specified by:
      fromList in interface MatrixND
      Parameters:
      list - la matrice sous forme de List de list ... de double
    • isValidCoordinates

      public boolean isValidCoordinates(int[] pos)
    • isValidCoordinates

      public boolean isValidCoordinates(Object[] pos)
    • sumAll

      public double sumAll()
      Description copied from interface: MatrixND
      Somme toutes les valeurs de la matrice.
      Specified by:
      sumAll in interface MatrixND
      Returns:
      sum result
    • sumOverDim

      public MatrixND sumOverDim(int dim)
      Description copied from interface: MatrixND
      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
       
      Specified by:
      sumOverDim in interface MatrixND
      Parameters:
      dim - la dimension sur lequel il faut faire la somme
      Returns:
      new matrix
    • sumOverDim

      public MatrixND sumOverDim(int dim, int step)
      Description copied from interface: MatrixND
      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.
      Specified by:
      sumOverDim in interface MatrixND
      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

      public MatrixND sumOverDim(int dim, int start, int nb)
      Specified by:
      sumOverDim in interface MatrixND
    • meanAll

      public double meanAll()
      Description copied from interface: MatrixND
      Return all matrix data mean value
      Specified by:
      meanAll in interface MatrixND
      Returns:
      mean value
    • meanOverDim

      public MatrixND meanOverDim(int dim)
      Description copied from interface: MatrixND
      Effectue la moyenne des valeurs sur une dimension donnée. La matrice résultat à le même nombre de dimension, pas la dimension moyenisée, ne contient qu'une ligne.

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

       1 2 3
       8 9 4
       7 6 5
       
       5.33 4.66 4
       
      Specified by:
      meanOverDim in interface MatrixND
      Parameters:
      dim - la dimension sur lequel il faut faire la moyenne
      Returns:
      new matrix
    • meanOverDim

      public MatrixND meanOverDim(int dim, int step)
      Description copied from interface: MatrixND
      Effectue la moyenne des valeurs sur une dimension donnée. la moyenne 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 moyenne sur la dimension 1 avec un pas de 2 donnera :
       1.5 3.5 4.5 4.5
       4.5 4.5 5.5 6.5
       
      c'est à dire que sur la ligne 0 et la ligne 1 on fait la moyenne. ainsi que la ligne 2 avec la ligne 3.
      Specified by:
      meanOverDim in interface MatrixND
      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
    • cut

      public MatrixND cut(int dim, int[] toCut)
      Description copied from interface: MatrixND
      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
       
      Specified by:
      cut in interface MatrixND
      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

      public MatrixND paste(MatrixND mat)
      Modifie la matrice actuel en metant les valeurs de mat passé en parametre
      Specified by:
      paste in interface MatrixND
      Parameters:
      mat - la matrice à copier
      Returns:
      return la matrice courante.
    • paste

      public MatrixND paste(int[] origin, MatrixND mat)
      Modifie la matrice actuel en metant les valeurs de mat passé en parametre
      Specified by:
      paste in interface MatrixND
      Parameters:
      origin - le point d'origine a partir duquel on colle la matrice
      mat - une matrice avec le meme nombre de dimension, si la matrice que l'on colle est trop grande, les valeurs qui depasse ne sont pas prises en compte
      Returns:
      return la matrice courante.
    • pasteSemantics

      public 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é
      Specified by:
      pasteSemantics in interface MatrixND
      Parameters:
      mat - matrix to paste
      Returns:
      new matrix
    • getSubMatrix

      public MatrixND getSubMatrix(int dim, int start, int nb)
      Description copied from interface: MatrixND
      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.
      Specified by:
      getSubMatrix in interface MatrixND
      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:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrix

      public MatrixND getSubMatrix(int dim, Object start, int nb)
      Description copied from interface: MatrixND
      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.
      Specified by:
      getSubMatrix in interface MatrixND
      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:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrixOnSemantic

      public MatrixND getSubMatrixOnSemantic(int dim, Object... elem)
      Add to desambiguas some call with xpath engine, but do the same thing getSubMatrix(int, Object[])
      Parameters:
      dim -
      elem -
      Returns:
      new matrix
    • getSubMatrix

      public MatrixND getSubMatrix(int dim, Object... elem)
      Description copied from interface: MatrixND
      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.
      Specified by:
      getSubMatrix in interface MatrixND
      Parameters:
      dim - la dimension dans lequel on veut une sous matrice
      elem - les éléments dans la dimension à conserver
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrix

      public MatrixND getSubMatrix(Object[]... elems)
      Description copied from interface: MatrixND
      Permet de prendre une sous matrice dans la matrice courante. Réalise plusieurs appels à MatrixND.getSubMatrix(int, Object...) suivant l'implémentation.
      Specified by:
      getSubMatrix in interface MatrixND
      Parameters:
      elems - les éléments dans la dimension à conserver
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrix

      public MatrixND getSubMatrix(int dim, int[] elem)
      Description copied from interface: MatrixND
      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.
      Specified by:
      getSubMatrix in interface MatrixND
      Parameters:
      dim - la dimension dans lequel on veut une sous matrice
      elem - les indices des éléments dans la dimension à conserver
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • getSubMatrix

      public MatrixND getSubMatrix(int[]... elems)
      Description copied from interface: MatrixND
      Permet de prendre une sous matrice dans la matrice courante. Réalise plusieurs appels a MatrixND.getSubMatrix(int, int[]) suivant l'implementation.
      Specified by:
      getSubMatrix in interface MatrixND
      Parameters:
      elems - les indices des éléments pour chaque dimension à conserver
      Returns:
      un objet SubMatrix qui est une vu de la matrice initiale (toute modification de la sous-matrice, modifie la matrice initiale)
    • add

      public MatrixND add(MatrixND m)
      Modifie la matrice actuelle en lui ajoutant les valeurs de la matrice passé en parametre. La matrice passé en parametre doit avoir le meme nombre de dimension, et chacune de ses dimensions doit avoir un nombre d'element au moins egal a cette matrice.
      Specified by:
      add in interface MatrixND
      Parameters:
      m - matrix to add
      Returns:
      new matrix
    • minus

      public MatrixND minus(MatrixND m)
      Modifie la matrice actuelle en lui soustrayant les valeurs de la matrice passé en parametre. La matrice passé en parametre doit avoir le meme nombre de dimension, et chacune de ses dimensions doit avoir un nombre d'element au moins egal a cette matrice.
      Specified by:
      minus in interface MatrixND
      Parameters:
      m - matrix to minus
      Returns:
      new matrix
    • transpose

      public MatrixND transpose()
      Description copied from interface: MatrixND
      retourne le transpose de la matrice.
      Specified by:
      transpose in interface MatrixND
      Returns:
      transposed matrix
    • reduce

      public MatrixND reduce()
      Description copied from interface: MatrixND
      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.
      Specified by:
      reduce in interface MatrixND
      Returns:
      une nouvelle matrice plus petite que la matrice actuelle ou egal s'il n'y a aucune dimension à supprimer
    • reduceDims

      public MatrixND reduceDims(int... dims)
      Description copied from interface: MatrixND
      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.
      Specified by:
      reduceDims in interface MatrixND
      Parameters:
      dims - les dimensions sur lequel il faut faire la reduction
      Returns:
      une nouvelle matrice
    • reduce

      public MatrixND reduce(int minNbDim)
      Description copied from interface: MatrixND
      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.
      Specified by:
      reduce in interface MatrixND
      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
    • reduce

      protected MatrixND reduce(List<?> dimName, List<Object> sem, int[] correspondance)
      Create new matrice from the current matrix.
      Parameters:
      dimName - dimension name for new matrix
      sem - semantic for new matrix
      correspondance - array to do the link between current matrix and returned matrix
      Returns:
      new matrix
    • mult

      public MatrixND mult(MatrixND m) throws MatrixException
      Description copied from interface: MatrixND
      Multiplication normal (produit matriciel) de 2 matrices 2D.
      Specified by:
      mult in interface MatrixND
      Parameters:
      m - matrix to mult
      Returns:
      Retourne une nouvelle matrice.
      Throws:
      MatrixException
    • mults

      public MatrixND mults(double d)
      Description copied from interface: MatrixND
      Multiplication d'une matrice par un scalaire.
      Specified by:
      mults in interface MatrixND
      Parameters:
      d - scalaire
      Returns:
      new matrix
    • divs

      public MatrixND divs(double d)
      Description copied from interface: MatrixND
      Multiplication d'une matrice par un scalaire.
      Specified by:
      divs in interface MatrixND
      Parameters:
      d - scalaire
      Returns:
      new matrix
    • adds

      public MatrixND adds(double d)
      Description copied from interface: MatrixND
      Addition d'un scalaire à une matrice.
      Specified by:
      adds in interface MatrixND
      Parameters:
      d - scalaire
      Returns:
      new matrix
    • minuss

      public MatrixND minuss(double d)
      Description copied from interface: MatrixND
      Soustraction d'un scalaire à une matrice
      Specified by:
      minuss in interface MatrixND
      Parameters:
      d - scalaire
      Returns:
      new matrix
    • isSupportedCSV

      @Deprecated public boolean isSupportedCSV()
      Deprecated.
      since 2.2, always return true, CSV import/export is always supported
      Determine si la matrice supporte l'import et l'export CSV
      Specified by:
      isSupportedCSV in interface MatrixND
      Returns:
      support du CSV
    • importCSV

      public void importCSV(Reader reader, int[] origin) throws IOException
      Import depuis un reader au format CSV des données dans la matrice
      Specified by:
      importCSV in interface MatrixND
      Parameters:
      reader - le reader à importer
      origin - le point à partir duquel il faut faire l'importation int[]{x,y}
      Throws:
      IOException
    • importCSV

      public void importCSV(Reader reader, int[] origin, String matrixName) throws IOException
      Import depuis un reader au format CSV des données dans la matrice.
      Specified by:
      importCSV in interface MatrixND
      Parameters:
      reader - le reader à importer
      origin - le point à partir duquel il faut faire l'importation
      matrixName - le nom de la matrice
      Throws:
      IOException
    • importCSV

      public void importCSV(File file, int[] origin) throws IOException
      Import depuis un reader au format CSV des données dans la matrice. Call {importCSV(Reader, int[], String)} with file name as matrix name.
      Specified by:
      importCSV in interface MatrixND
      Parameters:
      file - file to read
      origin - le point à partir duquel il faut faire l'importation
      Throws:
      IOException
    • importCSVND

      protected void importCSVND(Reader reader, int[] origin) throws IOException
      Import CSV file defined in Matrix ND format.
      Parameters:
      reader - reader containing content
      origin - not used
      Throws:
      IOException
    • exportCSV

      public void exportCSV(Writer writer, boolean withSemantics) throws IOException
      Export dans un writer au format CSV de la matrice
      Specified by:
      exportCSV in interface MatrixND
      Parameters:
      writer - le writer ou copier la matrice
      withSemantics - export ou pas des semantiques de la matrice dans le writer
      Throws:
      IOException
    • exportCSV2D

      protected void exportCSV2D(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
    • exportCSVND

      public void exportCSVND(Writer writer, boolean withSemantics) throws IOException
      Export dans un writer au format CSV de la matrice
      Specified by:
      exportCSVND in interface MatrixND
      Parameters:
      writer - le writer ou copier la matrice
      withSemantics - export ou pas des semantiques de la matrice dans le writer
      Throws:
      IOException