I'm not sure why what I wrote isn't working in terms of extracting the string I want.
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
Walter Roberson
2018 年 6 月 24 日
Please do not close questions that have an answer. If you are satisfied with one of the solutions offered, Accept that answer.
採用された回答
Paolo
2018 年 6 月 24 日
filename = 'Synch_ab001.mat';
subjectname = regexp(filename,'(?<=_)(.*)(?=\.\w*)','match')
0 件のコメント
その他の回答 (2 件)
Image Analyst
2018 年 6 月 24 日
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 件のコメント
Walter Roberson
2018 年 6 月 24 日
filename = 'Synch_ab001.mat';
temp = regexp(filename, '[_.]', 'split');
subjectname = temp{2};
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!