Chargement des données de texte dans l'Octave avec un format spécifique

J'ai un ensemble de données que je voudrais stocker et être en mesure de charger dans l'Octave

18.0   8   307.0      130.0      3504.      12.0   70  1    "chevrolet chevelle malibu"
15.0   8   350.0      165.0      3693.      11.5   70  1    "buick skylark 320"
18.0   8   318.0      150.0      3436.      11.0   70  1    "plymouth satellite"
16.0   8   304.0      150.0      3433.      12.0   70  1    "amc rebel sst"
17.0   8   302.0      140.0      3449.      10.5   70  1    "ford torino"
15.0   8   429.0      198.0      4341.      10.0   70  1    "ford galaxie 500"
14.0   8   454.0      220.0      4354.       9.0   70  1    "chevrolet impala"
14.0   8   440.0      215.0      4312.       8.5   70  1    "plymouth fury iii"
14.0   8   455.0      225.0      4425.      10.0   70  1    "pontiac catalina"
15.0   8   390.0      190.0      3850.       8.5   70  1    "amc ambassador dpl"

Il ne fonctionne pas immédiatement lorsque j'essaie d'utiliser:

data = load('auto.txt')

Est-il un moyen de les charger à partir d'un texte fichiers avec le format donné ou dois-je besoin de le convertir à l'e.g

18.0,8,307.0,130.0,3504.0,12.0,70,1
...

EDIT:
La suppression de la dernière ligne et la fixation de la 'moitié' nombre par exemple 3504. -> 3504.0
et alors utilisés:

data = load('-ascii','autocleaned.txt');

Chargé les données que l'on veut dans une matrice en Octave.

Puisque toutes les données sont en fixe la largeur des colonnes (à l'exception de la dernière des chaînes de caractères), vous devez être capable de lire ligne par ligne, à l'aide de fscanf pour décoder la ligne. En effet, vous serait le lire avec le même dossier spécificateur que vous pouvez utiliser pour écrire (en C ou en Fortran), ou avec fprintf.
J'ai compris comment le charger dans Python à l'aide de son csv et numpy modules, et ensuite le transférer sur Octave via un .mat fichier. Le résultat a été une 1x10 struct array avec 9 champs - 8 numérique et 1 chaîne. Je pourrais poster une réponse si vous le souhaitez.
Intéressant d'apprendre plus faible niveau de façons de le faire. Pour le moment, le nettoyage du fichier d'entrée et à l'aide de la charge était assez pour moi. Mais il y a juste le cas où vous voulez un peu plus de contrôle. Ici plus spécialisés moyens pourrait venir dans maniable.
Creuser plus loin dans l'Octave docs, je vois qu'il n'ont dlmread, csvread, fileread, textread, textscan. Tous, sauf dlmread sont interprétés et peut être lu avec type.

OriginalL'auteur user317706 | 2014-08-05