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!