How do I name a file from part of the file name read in?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Christopher
el 27 de En. de 2014
Respondida: Image Analyst
el 27 de En. de 2014
I would like to read in files from a directory, store their names, modify the files, and write out new files with a name based on the files read in. I have a solution that takes the first 8 characters of the read in file and uses that as part of the new written file. But, I would like the code to take the part of the name before a specific character is observed (an underscore "_") because the number of characters changes depending on the samples I'm analyzing. The file I read in is named "6145abc_acquired.txt" and I would like to name the written file "6145abc-ave100raw.txt".
Here's part of my current code:
files = dir('*.txt');
numfiles = numel(files);
for i=1:length(files)
filename = files(i).name;
[~,name] = fileparts(filename);
nameaves = name(1:8);
... in here I process the data creating the variable ave100...
dlmwrite([nameaves, '-ave100raw' '.txt'], ave100, '\t');
end
I would like to modify the name(1:8) to something that's more flexible and includes only what comes before the underscore "_".
Thanks.
0 comentarios
Respuesta aceptada
AJ von Alt
el 27 de En. de 2014
Replace
nameaves = name(1:8);
With:
namesplit = strsplit( name , '_' );
nameaves = namesplit{1};
0 comentarios
Más respuestas (1)
Image Analyst
el 27 de En. de 2014
Try this:
filename = '6145abc_acquired.txt'
underlineIndex = find(filename == '_', 1, 'first')
newFileName = sprintf('%s-ave100raw.txt', filename(1:underlineIndex-1))
0 comentarios
Ver también
Categorías
Más información sobre File Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!