2010-04-12 8 views
4

Je cherche un moyen de lire en C++ un fichier texte contenant des tableaux numpy et de mettre les données dans vector< vector<...> >, quelqu'un peut-il m'aider s'il vous plaît?Convertir un tableau python numpy en C++ stl vector

Merci beaucoup. Archy

EDIT: format du fichier texte

[[[ 0 1] [ 2 3] [ 4 5] [ 6 7] [ 8 9]] [[10 11] [12 13] [14 15] [16 17] [18 19]] [[20 21] [22 23] [24 25] [26 27] [28 29]] [[30 31] [32 33] [34 35] [36 37] [38 39]]] 

Peut-être plus lisiblement:

[ 
    [ 
     [ 0 1] [ 2 3] [ 4 5] [ 6 7] [ 8 9] 
    ] 
    [ 
     [10 11] [12 13] [14 15] [16 17] [18 19] 
    ] 
    [ 
     [20 21] [22 23] [24 25] [26 27] [28 29] 
    ] 
    [ 
     [30 31] [32 33] [34 35] [36 37] [38 39] 
    ] 
] 
+2

Pouvez-vous poster un exemple du type de données que vous devez lire? Comment est-il formaté? –

+0

de couse, ce quelque chose comme [[[0 1] [2 3] [4 5] [6 7] [8 9]] [[10 11] [12 13] [ 14 15] [16 17] [18 19]] [[20 21] [22 23] [24 25] [26 27] [28 29]] [[30 31] [32 33] [34 35] [36 37] [38 39]]] (désolé pour le format, comment l'embellir?) – Archy

+0

Vous pouvez utiliser "' "autour de votre texte dans les commentaires. –

Répondre

0
float val; 
::std::vector<float> vals; 
ifstream stream("c:/file.txt"); 
while(stream >> val) { 
    vals.push_back(val); 
} 
+0

Je pense que le vrai problème est que ' @ Archy' comme un tableau de tableaux de tableaux, donc c'est un peu plus difficile. –

+0

Merci quand même pour vos efforts :) – Archy

+0

Vous avez raison, sry, j'ai loupé –

0

Il va dépendre de votre niveau d'expertise.

Si vous êtes expérimenté, je suggérerais quelque chose comme Boost.Spirit.Qi, qui est une véritable bibliothèque d'analyseurs. Cependant, cela pourrait prendre un certain temps pour s'y habituer.

Sinon, il dépend de l'information que vous avez à votre disposition ... Je vais modifier ma réponse lorsque vous nous fournir plus de détails car il est assez poilu pour potentiellement obtenir assez compliqué :)

Questions connexes