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 :
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 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
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.
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
Voilà. Si quelqu'un a une idée à proposer je suis preneur !!!
Merci d'avance.
Partager