Azzera filtri
Azzera filtri

Read multiple txt files using a loop

9 visualizzazioni (ultimi 30 giorni)
This is the following code that i have
EDIdir = 'C:\Users\Alexis\Google Drive\B\D\';
date_1 = 2016-06-10
date_2 = 2016-06-11
Qdata = dlmread([EDIdir 'Something_' date_1 '.txt']);
I want to process multiple data from different dates, eg have date_2, date_3, date_4... Tried using a for loop to loop through date_i, i = 1:12 but didn't work. I am sure that i am making some kind of syntax wrong.
Thank you.
  1 Commento
Adam
Adam il 8 Ago 2016
Modificato: Stephen23 il 8 Ago 2016
Put your dates in an array instead of individual variables. Why declare 12 variables that you can't loop around, when you can use 1 that you can?

Accedi per commentare.

Risposta accettata

Stephen23
Stephen23 il 8 Ago 2016
Modificato: Stephen23 il 8 Ago 2016
Your mistake was to create lots of individual numbered variables for the date strings. This is a very bad idea, because it makes accessing them very difficult (read this page to know why). Instead, put all of your dates into one array (e.g. a cell array) and looping over it becomes trivial using basic indexing:
dates = {'2016-06-10','2016-06-11'};
out = cell(size(dates));
for k = 1:numel(dates)
fname = sprintf('Something_%s.txt',dates{k})
out{k} = dlmread(fullfile(EDIdir,fname));
end
Or alternatively you might like to use the dir method:
S = dir(fullfile(EDIdir,'Something_*.txt'));
out = cell(size(S));
for k = 1:numel(S)
fname = S(k).name;
etc
end
You will find a detailed explanation of both methods here:
  1 Commento
Alexios Costouri
Alexios Costouri il 8 Ago 2016
Thank you so much! I have been trying for quite a while now.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by