I'm not sure why what I wrote isn't working in terms of extracting the string I want.
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Khanh Nguyen
le 24 Juin 2018
Commenté : Walter Roberson
le 24 Juin 2018
I have:
filename = Synch_ab001.mat;
underscore_indices = strfind(filename, '-');
period_indices = strfind(filename, '.');
SubjectName = strtok(filename(underscore_indices(end)+1:period_indices(end)-1));
I wrote this to extract just the ab001 as SubjectName, but I keep getting a "subscript indices must either be real positive integers or logicals."
1 commentaire
Walter Roberson
le 24 Juin 2018
Please do not close questions that have an answer. If you are satisfied with one of the solutions offered, Accept that answer.
Réponse acceptée
Paolo
le 24 Juin 2018
filename = 'Synch_ab001.mat';
subjectname = regexp(filename,'(?<=_)(.*)(?=\.\w*)','match')
0 commentaires
Plus de réponses (2)
Image Analyst
le 24 Juin 2018
First of all filename is not a string. That should have thrown an error right away. Even if it were a string, you're looking for dashes and there are no dashes in the name. Try looking for underscores:
filename = 'Synch_ab001.mat';
underscore_indices = strfind(filename, '_')
period_indices = strfind(filename, '.')
SubjectName = strtok(filename(underscore_indices(end)+1:period_indices(end)-1))
0 commentaires
Walter Roberson
le 24 Juin 2018
filename = 'Synch_ab001.mat';
temp = regexp(filename, '[_.]', 'split');
subjectname = temp{2};
0 commentaires
Voir également
Catégories
En savoir plus sur Characters and Strings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!