Package org.nuiton.math.matrix
Class MatrixHelper
java.lang.Object
org.nuiton.math.matrix.MatrixHelper
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 -
Method Summary
Modifier and TypeMethodDescriptionstatic List<?> Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]static MatrixNDconvertToId(MatrixND mat) Convert Matrix to identity matrix must have 2 dimensions.static StringcoordinatesToString(int[] coordinates) permet de donner une représentation String d'un tableau de coordonnéesstatic StringcoordinatesToString(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 MatrixNDPermet 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 longgetVectorSize(int[] dimensions) Retourne la taille que doit avoir un vecteur pour etre utilise avec les dimensions en argumentstatic longgetVectorSize(int[] dimensions, long[] linearFactor) Retourne la taille que doit avoir un vecteur pour etre utilise avec les dimensions et le linearFactor en argumentstatic intPermet de retrouver la position d'un objet dans une listestatic booleanisValidCoordinates(int[] dim, int[] pos) static booleanisValidCoordinates(List[] semantics, Object[] pos) static doublemaxOccurence(double[] tab) Deprecated.static doublemaxOccurence(float[] tab) Deprecated.since 2.1, usemaxOccurrence(float[])insteadstatic doublemaxOccurrence(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 doublemaxOccurrence(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 doublemaxOccurrence1(double[] tmp) le tableau en entre est trie durant l'execution de la methode, il est donc modifiéstatic booleansameDimension(int[] dim1, int[] dim2) Permet de savoir si deux dimension sont identiques.static booleansameSemantics(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.
-
Constructor Details
-
MatrixHelper
public MatrixHelper()
-
-
Method Details
-
isValidCoordinates
public static boolean isValidCoordinates(int[] dim, int[] pos) -
isValidCoordinates
-
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
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
Permet de relire une chaine du type [[[1, 2], [3, 4]],[[3, 5], [1, 4]]]Remarque: une premiere implantantion avait ete faite en utilisant
StreamTokenizermais 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
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
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
-
sameSemantics
-
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
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
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
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.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.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
-
maxOccurrence(double[])instead