Optimiser temps de lecture d'un fichier
Bonjour,
Pour analyser mes données, je dois lire des fichiers txt allant de 30 à 500 mo. Actuellement, j'utilise la fonction importdata mais parfois je peux attendre 1 à 2 minutes avant de lire et stocker les variables de mon fichier.
Le fichier à lire contient le nom des variables dans la première ligne et dans les autres lignes on a les données. Sur chaque ligne les données sont séparées par une tabulation. Pour le moment je lis mon fichier de cette manière :
Code:
1 2 3 4 5
|
D = importdata(name,'\t',1); % importe le log
Datas = D.textdata; % enregistre les données au format string
I = cellfun(@(x) isempty(x),D.textdata); % récupère les indices des donnees au format double
Datas(I) = num2cell(D.data); % concatène les données string avec les donnees double |
Ensuite pour chaque variable que je veux récupérer je fais :
Code:
1 2 3 4 5 6 7 8
| ind = find(strcmp(Datas(1,:),'Date'));
if (ind >= 1)
Wind(i).Values = Datas(2:nb_lignes,ind);
Wind(i).Name = 'Date';
Wind(i).Number = 120;
Wind(i).Unit = 'dd/mm/yyyy';
i = i + 1;
end |
Ceux qui peut me faire perdre du temps est aussi que je lis tout le fichier alors que je n'exploite pas toutes les variables.
Voilà. Si quelqu'un a une idée à proposer je suis preneur !!!
Merci d'avance.