Find multiple strings within another string
이전 댓글 표시
I am trying to find the indexes in a struct 'data.orig_reg' where the corresponding strings I am trying to find is 'a_13'. The following code works just fine.
CVT_PAT = find(~cellfun('isempty',strfind({data.orig_reg},'a_13')))';
[sharedCVTVals,~] = intersect(CVT,CVT_PAT);
If I implement multiple string searches such as:
TEST = {'a_13','a_14','a_164'}.
CVT_PAT = find(~cellfun('isempty',strfind({data.orig_reg},TEST)))';
[sharedCVTVals,~] = intersect(CVT,CVT_PAT);
This returns an error:
Error using strfind
PATTERN must be a string scalar or character vector.
This is due to strfind only takes in one string at the time as faar as I can tell... Is there a way to make this code work by using multiple strings as an input like the variable TEST described above?
채택된 답변
추가 답변 (1개)
Tao Wang
2022년 1월 13일
mystr={'123a1','ab','111'};
pat = ("a"|"b");
a = strfind(mystr,pat)
% can get index of each match
ab = contains(mystr,pat)
% logical result
카테고리
도움말 센터 및 File Exchange에서 Cell Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!