J'ai un grand fichier délimité par des tabulations (10000 lignes, 15000 colonnes) et j'aimerais l'importer dans Matlab.Comment lire un fichier en utilisant textscan?
J'ai essayé de l'importer en utilisant la fonction textscan de la manière suivante:
function [C_text, C_data] = ReadDataFile(filename, header, attributesCount, delimiter,
attributeFormats, attributeFormatCount)
AttributeTypes = SetAttributeTypeMatrix(attributeFormats, attributeFormatCount);
fid = fopen(filename);
if(header == 1)
%read column headers
C_text = textscan(fid, '%s', attributesCount, 'delimiter', delimiter);
C_data = textscan(fid, AttributeTypes{1, 1}, 'headerlines', 1);
else
C_text = '';
C_data = textscan(fid, AttributeTypes{1, 1});
end
fclose(fid);
AttributeTypes {1, 1} est une wich chaîne décrit les types de variables pour chaque colonne (dans ce cas, il y a 14740 flotteur et 260 variables de type chaîne de sorte que la valeur de AttributeTypes {1, 1} est '% f% f ......% f% s% s ...% s où% f est répété 14740 fois et% s 260 fois) .
Lorsque je tente d'exécuter
>> [header, data] = ReadDataFile('data/orange_large_train.data.chunk1', 1, 15000, '\t', types, size);
tête tableau semble être correct (les noms de colonnes ont été lus correctement).
data est un tableau 1 x 15000 (seule la première ligne a été importée au lieu de 10000) et ne sait pas ce qui cause un tel comportement.
Je suppose que le problème est causé dans cette ligne:
C_data = textscan(fid, AttributeTypes{1, 1});
mais je ne sais pas ce qui pourrait être mal parce qu'il est un exemple similaire à celui décrit dans la référence de l'aide.
Je serais très reconnaissant si quelqu'un d'entre vous suggéré une solution pour le problème - Comment lire toutes les 10000 lignes.