Se sei sicuro che la struttura del file di sia sempre la stessa:
[*] riga con "#" da "saltare"
[*] 10000 numeri
...
Puoi usare la funzione "textscan" per leggere il file.
Nell'esempio che segue il file viene letto ed i dati vengono assegnati sia ad un'unica matrice di output sia ad una struct nella quale ogni campo contiene i dati di una sezione de file.
L'esempio è stato testato su un file con 10 righe di dati invece di 10000: sostituisci 10 con 10000 nella riga "C=textscan(fp,'%s',10,'delimiter','\n')".
Se i dati si ripetono per più di 3 volte, modifica di conseguenza la definizione del ciclo "for".
% Open the input file
fp=fopen('dati.csv','rt');
% Initialize the output matrix
m1=[];
% Loop over the input file sections
for i=1:3
% Read the "header" line (line with #)
C=textscan(fp,'%s',1,'delimiter','\n')
% Read the data of the current section
C=textscan(fp,'%s',10,'delimiter','\n')
% Assign the data to the output matrix
m1=[m1;str2num(char(C{1}))]
% Store the data in a struct, a field for each section
data_str.(['section_' num2str(i)])=str2num(char(C{1}));
end
% Close the input file
fclose(fp);