2013-06-10 4 views
0

J'ai une matrice creuse dans le format suivant:Représentation matricielle en Java

rowName(String) colName(String) value(float) 

dans un fichier texte séparé par onglet. Je veux convertir ce format dans le suivant:

rowIndex(Integer) colIndex(Integer) value(float) 
+0

Pourriez-vous donner un (petit) exemple du contenu du fichier. – selig

+0

Pourriez-vous s'il vous plaît fournir un exemple d'entrée et de sortie attendue. –

Répondre

0

Vous pouvez utiliser un TLongFloatHashMap par exemple.

final TLongDoubleHashMap matrix = new TLongDoubleHashMap(); 

public void set(int x, int y, double value) { 
    long key = ((long) x << 32) + y; 
    matrix.put(key, value); 
} 

public double get(int x, int y) { 
    long key = ((long) x << 32) + y; 
    return matrix.get(key); 
} 

La manière dont vous convertissez les chaînes en entier dépend de vous. Il n'y a pas de façon standard de le faire car vous devez savoir ce que la cartographie devrait être pour qu'une opération matricielle ait du sens. Voulez-vous charger ceci dans une structure de données ou le réécrire dans un nouveau fichier?

+1

'TLongDoubleHashMap' /' TLongFloatHashMap' ne fait pas partie de la Java Runtime Library, mais fait partie de Trove, que vous pouvez trouver sur http://trove.starlight-systems.com/ – escitalopram

Questions connexes