How to extract a specific 3 digit number from a filename?
Afficher commentaires plus anciens
I have this filename (hst_05773_05_wfpc2_f502n_wf_sci.tif) and i would like to extract the three digit number after the _f . i.e. 502, but i am not sure how to do that as i am a beginner in MATLAB Thanks in advance
Réponse acceptée
Plus de réponses (1)
Kim Arnold
le 5 Fév 2020
Hi everybody im quite new to Matlab.
How is it if you have like 1000 files. Do you first convert them to char characters? when i do it with one file with the name '20191108_1_blank_BA_pos.mzXML' as follows:
ix=strfind(Spos.Files_names(1),'_BA');
net=char(Spos.Files_names(1))
let=net(ix-3:ix-1)
it gives me the 3 letters before _BA, here "ank".I want to find the 3 letters before _BA for all the files. The code above allows me to do this for one file. Do i have to do a for loop and is there another ways instead of converting the files to type char?`
Thanks a lot!
2 commentaires
Walter Roberson
le 5 Fév 2020
dinfo = dir('*XML'); %not *.XML as the extension is mzXML for some reason
filenames = {dinfo.name};
lets = regexp(filenames, '...(?=_BA)', 'match', 'once');
lets will now be a cell array of character vectors, with one entry for each XML file found in the current directory, and the entry will be the 3 characters before _BA in the file name. To emphasize, lets will have done all of them at once, so lets{1} would be the first, lets{2} would be the second, and so on.
Kim Arnold
le 7 Fév 2020
Dear Walter,
Many thanks for your answer, this is much more effective than my for loop!
Catégories
En savoir plus sur MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!