2017-05-17 2 views
0

J'ai un fichier qui a 362000 flotteurs 32 bits, ses 1000 lignes par 362 colonnes, ce qui signifie que les 362 premiers flotteurs correspondent à la ligne 1, et les 362 suivants sont la ligne 2, et ainsi de suite. Existe-t-il un moyen, en q, de lire ceci dans une table?Comment puis-je lire dans un fichier binaire dans q?

-Merci.

+1

Pouvez-vous télécharger deux en ligne échantillon? – terrylynch

Répondre

1

1: commande peut être utilisé pour lire et formater des fichiers binaires en KDB

reals: (enlist 4;enlist"e') 1: `:fp32file 

Vous devrez peut-être quelques ajustements basés sur boutisme, voir https://code.kx.com/q/ref/filenumbers/#1-binary-files

Cela vous donnera une liste de tous 362000 Flotteurs 32 bits. Pour obtenir cela dans une table,

colNames: `$"col",/:string til 362/or whatever your column names are 
reals: flip 362 cut raze reals/turn list into a 362x1000 array 
flip colNames!reals/create a dictionary, convert to table 

EDIT: En fait, au lieu de le lire dans une liste, vous pouvez spécifier que vous avez 362 colonnes avec

reals: (362#4;362#"e") 1: `:fp32file 
flip colNames!reals 
+0

Merci, a parfaitement fonctionné. – Roman