Class MatrixSemanticsDecorator

  • All Implemented Interfaces:
    Serializable, Cloneable, MatrixND

    public class MatrixSemanticsDecorator
    extends Object
    implements MatrixND
    Permet d'interpreter les semantics, par exemple convertir un Id en une entite via le SemanticMapper passe en argument
    Version:
    $Revision$ Last update: $Date$ by : $Author$
    Author:
    poussin
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      MatrixND add​(MatrixND m)
      Addition la matrice courante avec la matrice passe en parametre et se 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 exportCSVND​(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()
      Permet de recuperer les noms des dimension.
      String getDimensionName​(int dim)
      Retourne le nom de la dimension demandée.
      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 couramment rencontree dans un tableau.
      double getMaxOccurrence()
      Retourne la valeur la plus courrement rencontrer dans un tableau.
      String getName()
      Retourne le nom de la matrice.
      int getNbDim()
      Retourne le nombre de dimensions de la matrice.
      long getNumberOfAssignedValue()
      Returne number of assigned value, assigned value is value stored in memory
      List getSemantic​(int dim)
      Retourne la semantique pour une dimension.
      List[] getSemantics()
      Donne toutes les semantiques de la matrice.
      List getSemantics​(int dim)
      Retourne la semantique pour une dimension.
      MatrixND getSubMatrix​(int[]... elems)
      Permet de prendre une sous matrice dans la matrice courante.
      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.
      MatrixND getSubMatrix​(Object[]... elem)
      Permet de prendre une sous matrice dans la matrice courante.
      double getValue​(int x)
      Return a 1D matrix value.
      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.
      double getValue​(int x, int y)
      Return a 2D matrix value.
      double getValue​(int x, int y, int z)
      Return a 3D matrix value.
      double getValue​(int x, int y, int z, int t)
      Return a 4D matrix value.
      double getValue​(Object x)
      Return a 1D matrix value.
      double getValue​(Object[] coordinates)
      Renvoie un element de la matrice demandée en fonction des dimensions passé en paramètre.
      double getValue​(Object x, Object y)
      Return a 2D matrix value.
      double getValue​(Object x, Object y, Object z)
      Return a 3D matrix value.
      double getValue​(Object x, Object y, Object z, Object t)
      Return a 4D matrix value.
      void importCSV​(File file, int[] origin)
      Import depuis un reader au format CSV des données dans la matrice.
      void importCSV​(Reader reader, int[] origin)
      Import depuis un reader au format CSV des données dans la matrice.
      void importCSV​(Reader reader, int[] origin, String matrixName)
      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.
      MatrixIterator iteratorNotZero()
      Retourne un iterator pour toutes les valeurs de la matrices differente de 0
      MatrixND map​(MapFunction f)
      Applique une fonction sur chaque valeur de la matrice.
      double meanAll()
      Return all matrix data mean value
      MatrixND meanOverDim​(int dim)
      Effectue la moyenne des valeurs sur une dimension donnée.
      MatrixND meanOverDim​(int dim, int step)
      Effectue la moyenne des valeurs sur une dimension donnée. la moyenne permet juste de regrouper dans une dimension un certain nombre de valeur.
      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)
      Permet de mettre des noms aux différentes dimension.
      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)
      Modifie la semantique d'une dimension.
      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.
      void setValue​(int x, double d)
      Modify a 1D matrix value.
      void setValue​(int x, int y, double d)
      Modify a 2D matrix value.
      void setValue​(int x, int y, int z, double d)
      Modify a 3D matrix value.
      void setValue​(int x, int y, int z, int t, double d)
      Modify a 4D matrix value.
      void setValue​(Object[] coordinates, double d)
      Modifie un element de la matrice en fonction des dimensions passé en paramètre.
      void setValue​(Object x, double d)
      Modify a 1D matrix value.
      void setValue​(Object x, Object y, double d)
      Modify a 2D matrix value.
      void setValue​(Object x, Object y, Object z, double d)
      Modify a 3D matrix value.
      void setValue​(Object x, Object y, Object z, Object t, double d)
      Modify a 4D matrix value.
      long size()
      Retourne le nombre d'element dans la matrice [2, 3, 5] donnera 30
      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
      String toString()  
      MatrixND transpose()
      retourne le transpose de la matrice.
      protected MatrixND wrap​(MatrixND m)
      Les matrices retournees par cette classe doivent etre wrapper pour que les semantiques continues de fonctionner
    • Constructor Detail

      • MatrixSemanticsDecorator

        public MatrixSemanticsDecorator​(MatrixND matrix,
                                        SemanticsDecorator decorator)
        Parameters:
        matrix - La matrice dont il faut decorer les semantiques
        decorator - l'objet utilise pour la decoration
    • Method Detail

      • getNumberOfAssignedValue

        public long getNumberOfAssignedValue()
        Description copied from interface: MatrixND
        Returne number of assigned value, assigned value is value stored in memory
        Specified by:
        getNumberOfAssignedValue in interface MatrixND
      • wrap

        protected MatrixND wrap​(MatrixND m)
        Les matrices retournees par cette classe doivent etre wrapper pour que les semantiques continues de fonctionner
        Parameters:
        m -
        Returns:
      • 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

        public List getSemantics​(int dim)
        Description copied from interface: MatrixND
        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

        public <E> void setSemantics​(int dim,
                                     List<E> sem)
        Description copied from interface: MatrixND
        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.
      • setDimensionName

        public void setDimensionName​(String[] names)
        Description copied from interface: MatrixND
        Permet de mettre des noms aux différentes dimension.
        Specified by:
        setDimensionName in interface MatrixND
        Parameters:
        names - names to set
      • 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

        public String[] getDimensionName()
        Description copied from interface: MatrixND
        Permet de recuperer les noms des dimension.
        Specified by:
        getDimensionName in interface MatrixND
        Returns:
        tableau des noms de dimension.
      • 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.
      • 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

        public double getMaxOccurence()
        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

        public int getNbDim()
        Description copied from interface: MatrixND
        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
      • iterator

        public MatrixIterator iterator()
        Description copied from interface: MatrixND
        Retourne un iterator sur toute la matrice.
        Specified by:
        iterator in interface MatrixND
        Returns:
        matrix iterator
      • iteratorNotZero

        public MatrixIterator iteratorNotZero()
        Description copied from interface: MatrixND
        Retourne un iterator pour toutes les valeurs de la matrices differente de 0
        Specified by:
        iteratorNotZero in interface MatrixND
        Returns:
        matrix iterator
      • map

        public MatrixND map​(MapFunction f)
        Description copied from interface: MatrixND
        Applique une fonction sur chaque valeur de la matrice.
        Specified by:
        map in interface MatrixND
        Parameters:
        f - function to apply
        Returns:
        this
      • getValue

        public double getValue​(int[] dimensions)
        Description copied from interface: MatrixND
        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.
        Specified by:
        getValue in interface MatrixND
        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

        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
      • 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
      • setValue

        public void setValue​(int[] dimensions,
                             double d)
        Description copied from interface: MatrixND
        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.
        Specified by:
        setValue in interface MatrixND
        Parameters:
        dimensions - dimension indices
        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
      • 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
      • 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
      • 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
      • 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)
        Description copied from interface: MatrixND
        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.
        Specified by:
        paste in interface MatrixND
        Parameters:
        mat - la matrice à copier
        Returns:
        return la matrice courante.
      • paste

        public MatrixND paste​(int[] origin,
                              MatrixND mat)
        Description copied from interface: MatrixND
        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.
        Specified by:
        paste in interface MatrixND
        Parameters:
        origin - le point à partir duquel il faut faire la copie
        mat - la matrice à copier
        Returns:
        return la matrice courante.
      • pasteSemantics

        public MatrixND pasteSemantics​(MatrixND mat)
        Description copied from interface: MatrixND
        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,
                                     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)
      • 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... 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​(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​(Object[]... elem)
        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:
        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​(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)
        Description copied from interface: MatrixND
        Addition la matrice courante avec la matrice passe en parametre et se retourne elle meme.
        Specified by:
        add in interface MatrixND
        Parameters:
        m - matrix to add
        Returns:
        new matrix
      • minus

        public MatrixND minus​(MatrixND m)
        Description copied from interface: MatrixND
        Soustrai la matrice courante avec la matrice passe en parametre et ce retourne elle meme.
        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
      • 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
      • 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
      • mult

        public MatrixND mult​(MatrixND m)
        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.
      • 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
      • 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
      • isSupportedCSV

        public boolean isSupportedCSV()
        Description copied from interface: MatrixND
        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
        Description copied from interface: MatrixND
        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
        Throws:
        IOException
      • importCSV

        public void importCSV​(Reader reader,
                              int[] origin,
                              String matrixName)
                       throws IOException
        Description copied from interface: MatrixND
        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
        Description copied from interface: MatrixND
        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
      • exportCSV

        public void exportCSV​(Writer writer,
                              boolean withSemantics)
                       throws IOException
        Description copied from interface: MatrixND
        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
      • exportCSVND

        public void exportCSVND​(Writer writer,
                                boolean withSemantics)
                         throws IOException
        Description copied from interface: MatrixND
        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
      • equalsValues

        public boolean equalsValues​(MatrixND mat)
        Description copied from interface: MatrixND
        Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques
        Specified by:
        equalsValues in interface MatrixND
        Returns:
        equlaity on values