Package org.nuiton.math.matrix
Class MatrixHelper
- java.lang.Object
-
- org.nuiton.math.matrix.MatrixHelper
-
public class MatrixHelper extends Object
Contains usefull methods to get information on matrix. Created: 28 oct. 2004- Version:
- $Revision$ Mise a jour: $Date$ par : $Author$
- Author:
- Benjamin Poussin <poussin@codelutin.com>
-
-
Constructor Summary
Constructors Constructor Description MatrixHelper()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static List<?>
convertStringToList(String s)
Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]static MatrixND
convertToId(MatrixND mat)
Convert Matrix to identity matrix must have 2 dimensions.static String
coordinatesToString(int[] coordinates)
permet de donner une représentation String d'un tableau de coordonnéesstatic String
coordinatesToString(Object[] coordinates)
permet de donner une représentation String d'un tableau de coordonnéesstatic Object[]
dimensionToSemantics(Object[] result, List<?>[] semantics, int[] coordinates)
Permet de convertir des coordonnées définies par des entiers en coordonnées semantique par des objetsstatic MatrixND
fill(MatrixND mat, double value)
Permet de remplir toute la matrice avec la même donnéestatic long[]
getLinearFactor(int[] dimensions)
Retourne le linearFactor, ce tableau sert a convertir une position donnee par les dimensions d'une matrice en une position dans un Vecteur.static long
getVectorSize(int[] dimensions)
Retourne la taille que doit avoir un vecteur pour etre utilise avec les dimensions en argumentstatic long
getVectorSize(int[] dimensions, long[] linearFactor)
Retourne la taille que doit avoir un vecteur pour etre utilise avec les dimensions et le linearFactor en argumentstatic int
indexOf(List<?>[] semantics, int dim, Object o)
Permet de retrouver la position d'un objet dans une listestatic boolean
isValidCoordinates(int[] dim, int[] pos)
static boolean
isValidCoordinates(List[] semantics, Object[] pos)
static double
maxOccurence(double[] tab)
Deprecated.since 2.1, usemaxOccurrence(double[])
insteadstatic double
maxOccurence(float[] tab)
Deprecated.since 2.1, usemaxOccurrence(float[])
insteadstatic double
maxOccurrence(double[] tab)
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ée.static double
maxOccurrence(float[] tab)
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ée.protected static double
maxOccurrence1(double[] tmp)
le tableau en entre est trie durant l'execution de la methode, il est donc modifiéstatic boolean
sameDimension(int[] dim1, int[] dim2)
Permet de savoir si deux dimension sont identiques.static boolean
sameSemantics(List[] sems1, List[] sems2)
static int[]
semanticsToDimension(List<?>[] semantics, Object[] coordinates)
Permet de convertir des coordonnées sémantiques en coordonnées défini par des entiers.
-
-
-
Method Detail
-
isValidCoordinates
public static boolean isValidCoordinates(int[] dim, int[] pos)
-
getLinearFactor
public static long[] getLinearFactor(int[] dimensions)
Retourne le linearFactor, ce tableau sert a convertir une position donnee par les dimensions d'une matrice en une position dans un Vecteur.- Parameters:
dimensions
-- Returns:
-
getVectorSize
public static long getVectorSize(int[] dimensions, long[] linearFactor)
Retourne la taille que doit avoir un vecteur pour etre utilise avec les dimensions et le linearFactor en argument- Parameters:
dimensions
-linearFactor
- calculer prealablement par getLinearFactor- Returns:
-
getVectorSize
public static long getVectorSize(int[] dimensions)
Retourne la taille que doit avoir un vecteur pour etre utilise avec les dimensions en argument- Parameters:
dimensions
-- Returns:
-
convertToId
public static MatrixND convertToId(MatrixND mat)
Convert Matrix to identity matrix must have 2 dimensions. If dimension haven't same length, then the small dimension is used.- Parameters:
mat
- matrix nd to convert- Returns:
- converted matrix
-
convertStringToList
public static List<?> convertStringToList(String s)
Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]Remarque: une premiere implantantion avait ete faite en utilisant
StreamTokenizer
mais en fait il y a un bug dedans, il ne sait pas parser les chiffres avec un exposant: 5.0E-7 par exemple est lu comme 5.0 :(Remarque: une autre implantation de remplacement a ete faite en utilisant le
StringUtil.split(String, String)
mais elle etait moins performante (x2)- Parameters:
s
- la chaine representant les listes de liste- Returns:
- une liste de liste ... de Double
-
coordinatesToString
public static String coordinatesToString(int[] coordinates)
permet de donner une représentation String d'un tableau de coordonnées- Parameters:
coordinates
- les coordonnées- Returns:
- la chaine demandée de la forme 1,3,34,23
-
coordinatesToString
public static String coordinatesToString(Object[] coordinates)
permet de donner une représentation String d'un tableau de coordonnées- Parameters:
coordinates
- les coordonnées- Returns:
- la chaine demandée de la forme "Ob1","Ob2,"Ob3", ... la chaine prise pour l'objet est celle retournée par la méthode toString de l'objet
-
sameDimension
public static boolean sameDimension(int[] dim1, int[] dim2)
Permet de savoir si deux dimension sont identiques.- Parameters:
dim1
- first dimensionsdim2
- second dimensions- Returns:
- dimension equality
-
dimensionToSemantics
public static Object[] dimensionToSemantics(Object[] result, List<?>[] semantics, int[] coordinates)
Permet de convertir des coordonnées définies par des entiers en coordonnées semantique par des objets- Parameters:
result
- le tableau utilise pour stocker le resultat. Force sa creation par l'appelant permet de ne pas creer un tableau pour chaque appel, l'appelant peu utiliser a chaque fois le meme.semantics
- la semantique à utilisé pour la conversioncoordinates
- les coordonnées à convertir- Returns:
- un tableau donnant les coordonnées sous forme semantique s'il n'y a pas de semantique (liste pleine de null) alors un objet Integer est créer pour représenter la semantique de la dimension.
-
semanticsToDimension
public static int[] semanticsToDimension(List<?>[] semantics, Object[] coordinates)
Permet de convertir des coordonnées sémantiques en coordonnées défini par des entiers. Cette fonction est l'inverse dedimensionToSemantics(java.lang.Object[], java.util.List<?>[], int[])
.- Parameters:
semantics
- la semantique à utiliser pour la conversioncoordinates
- les coordonnées sémantique- Returns:
- les coordonnées en entier. Si la sémantique est représentée par un Integer alors la valeur de l'integer est utilisé pour la conversion.
-
indexOf
public static int indexOf(List<?>[] semantics, int dim, Object o) throws NoSuchElementException
Permet de retrouver la position d'un objet dans une liste- Parameters:
semantics
- la semantique à utilisé pour la recherchedim
- la dimension dans lequel il faut faire la rechercheo
- l'objet à rechercher- Returns:
- la position de l'objet dans la dimension demandée
- Throws:
NoSuchElementException
- If element doesn't exists
-
fill
public static MatrixND fill(MatrixND mat, double value)
Permet de remplir toute la matrice avec la même donnée- Parameters:
mat
- la matrice à remplirvalue
- la valeur de remplissage- Returns:
- la matrice passé en paramêtre
-
maxOccurence
@Deprecated public static double maxOccurence(double[] tab)
Deprecated.since 2.1, usemaxOccurrence(double[])
insteadRetourne 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ée.- Parameters:
tab
- le tableau de valeur- Returns:
- la valeur la plus nombreuse dans le tableau
-
maxOccurence
@Deprecated public static double maxOccurence(float[] tab)
Deprecated.since 2.1, usemaxOccurrence(float[])
insteadRetourne 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ée.- Parameters:
tab
- le tableau de valeur- Returns:
- la valeur la plus nombreuse dans le tableau
-
maxOccurrence
public static double maxOccurrence(double[] tab)
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ée.- Parameters:
tab
- le tableau de valeur- Returns:
- la valeur la plus nombreuse dans le tableau
-
maxOccurrence
public static double maxOccurrence(float[] tab)
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ée.- Parameters:
tab
- le tableau de valeur- Returns:
- la valeur la plus nombreuse dans le tableau
-
maxOccurrence1
protected static double maxOccurrence1(double[] tmp)
le tableau en entre est trie durant l'execution de la methode, il est donc modifié- Parameters:
tmp
- TODO- Returns:
- TODO
-
-