La cosa più semplice che puoi fare è: identificare la lista dei files di input con la funzione "dir" e creare un loop per leggerli in sequenza.
Usandola bisogna fare attenzione a due particolari: se nella cartella ci potrebbero essere files di testo che non si vogliono leggere / importare, i file verranno letti in ordine alfabetico (rispetto al loro nome).
Puoi leggere i file con la funzione "textscan" che è in grado di leggere tutto il file in una volta evitando il loop che stai usando e, quindi, la funzione "parse_line".
La funzione "textscan" ritorna il contenuto del file in un cellarray, basterà quindi estrarre da esso i dati e concatenarli nel loop di lettura.
Nell'esempio che segue, vengono letti i due file di testo e viene creata una matrice con i valori estratti.
a.txt
2003-01-04 00:15:00;V;31.4;0
2003-02-05 00:15:00;V;32.4;0
2003-03-06 00:15:00;V;33.4;0
a.txt
2003-04-07 00:15:00;V;331.4;0
2003-05-08 00:15:00;V;332.4;0
2003-06-09 00:15:00;V;333.4;0
% Get the list of files
f_names=dir('*.txt')
% Initialize the output raays
date=[]
v=[]
vento=[]
% Loop over the input files
for i=1:length(f_names)
% Open the FIle
fid=fopen(f_names(i).name,'r');
% Load the file in a cellarray
C=textscan(fid,'%s%s%f%f','delimiter',';');
% Extract the data in the output matrices
date=[date;datevec(C{1})]
v=[v;C{3}]
vento=[vento; datevec(C{1}) C{3}]
fclose(fid)
end
Il codice genera la matrice "vento":
vento =
Columns 1 through 6:
2003.00000 1.00000 4.00000 0.00000 15.00000 0.00000
2003.00000 2.00000 5.00000 0.00000 15.00000 0.00000
2003.00000 3.00000 6.00000 0.00000 15.00000 0.00000
2003.00000 4.00000 7.00000 0.00000 15.00000 0.00000
2003.00000 5.00000 8.00000 0.00000 15.00000 0.00000
2003.00000 6.00000 9.00000 0.00000 15.00000 0.00000
Column 7:
31.40000
32.40000
33.40000
331.40000
332.40000
333.40000
e, nel caso servissero, le matrici "date" (date lette dal file) e "v" (i valori corrisposndenti.
Leggendo le date come stringa ed utilizzando la funzione "datevec" si possono separare facilmente le componenti della data e scegliere quali inserire nella matrice di output.