How can I search for specific string in a cell array

조회 수: 1 (최근 30일)
Sami Rahman
Sami Rahman 2016년 1월 30일
댓글: Sami Rahman 2016년 1월 30일
I have a cell array C= 100,000x1 size. within this cell array, certain rows are the name of the months. How can I find the location of these months from C? There could be several number of months in C and the location of the months are random. Please help.

채택된 답변

Walter Roberson
Walter Roberson 2016년 1월 30일
Provided that C is a cell array that contains only strings,
monthnames = {'Jan', 'Feb', 'Mar', 'April', 'May', 'June', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'}; %or as appropriate
[tf, idx] = ismember(C, monthnames);
Now tf and idx will be arrays same size as C. tf(I,J) true indicates that C(I,J) matches one of the months, and for those locations, idx(I,J) tells you which of the months was matched.
If your cell array contains non-strings as well then
tf = cellfun(@(S) ischar(S) && ismember(S, monthnames));
and finding the index efficiently is trickier.
  댓글 수: 1
Sami Rahman
Sami Rahman 2016년 1월 30일
thanks you so much Walter Roberson. ismember did the trick!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by