How to import a file using only part of the name, such as an index at the begin of filename?
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
INTRO Hi, I have multiple text files named as below:
C:\Users\EMERSON\Desktop\1\1_2013-01-21__15-35-22.txt
C:\Users\EMERSON\Desktop\1\2_2013-01-21__15-35-23.txt
C:\Users\EMERSON\Desktop\1\3_2013-01-21__15-35-24.txt
C:\Users\EMERSON\Desktop\1\4_2013-01-21__15-35-25.txt
C:\Users\EMERSON\Desktop\1\5_2013-01-21__15-35-26.txt
C:\Users\EMERSON\Desktop\1\6_2013-01-21__15-35-27.txt
C:\Users\EMERSON\Desktop\1\7_2013-01-21__15-35-28.txt
The file name is made of three components: i) index k=1:arbitrary, ii) date, iii)hour.
And I want to import/load these files using only the first index (1,2,3,4,5,6,7). So I wrote:
for k = 1:1;
fid =fopen(['C:\Users\EMERSON\Desktop\1\',num2str(k),'~.txt']);
A=textscan(fid,'%f %f %f %f %f %f ');
fclose(fid);
end
For instance I use k=1:1 only to test if one file is imported correctly, later k=1:arbitrary.
Problem: I obtain the following error:
Error using textscan
Invalid file identifier. Use fopen to generate a valid file identifier.
I wonder if someone could tell me how to correct the first command line (fid=fopen....).
Thank you in advance for your attention
Emerson
0 comentarios
Respuesta aceptada
Walter Roberson
el 21 de En. de 2013
You missed most of the file name.
5 comentarios
Cedric
el 22 de En. de 2013
Editada: Cedric
el 22 de En. de 2013
There is certainly a function that will allow sorting according to what you need in one shot. Here would be one way to do it "by hand" until someone tells you how to do it properly:
txtFiles = ... (the way you define it)
[~,id] = sort(cellfun(@(n)sscanf(n,'%d_'), {txtFiles(:).name})) ;
for k = 1 : numel(txtFiles)
baseFileName = txtFiles(id(k)).name ;
...
Walter Roberson
el 22 de En. de 2013
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!