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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.