Get the index for the search of multiple strings within an array of strings

60 views (last 30 days)
JoseLuis
JoseLuis on 12 Jul 2012
Commented: Stephane on 2 Feb 2020
Hi,
I have a (1x128) cell array like this: "list" = 'S01R' 'S02R' 'S03R'... etc And another short (1x16) cell array with the same type of characters, eg, "bad" = 'S01R' 'S02R' 'S03R'... etc
I want to know the index of my "list" where I may found the items listed in "bad", I'v tried regexp but this function only allow me to find single strings in my list, Also, I don't know how to get the index in a orderer list instead of a cell array like this c=[] [] [] [1] [] [] [] [] []
Thanks for any idea,
JL
  1 Comment
Jan
Jan on 12 Jul 2012
Please post examples in valid Matlab code, such that they can be used directly in an answer by copy&paste.

Sign in to comment.

Accepted Answer

Jan
Jan on 12 Jul 2012
See FEX: CStrAinBP: Reply the indices of common strings.

More Answers (3)

Ryan
Ryan on 12 Jul 2012
Edited: Ryan on 12 Jul 2012
Is this what you were looking for?
list = {'bad','worse','good','okay'};
badlist = {'bad','worse'};
idx = ismember(list,badlist);
This returns:
idx = 1 1 0 0;
  1 Comment
Dhruv Ghulati
Dhruv Ghulati on 21 Dec 2015
This works for exact text search, but not for if a string contains a particular set of characters. I find strfind() a better approach if you have that particular use case.

Sign in to comment.


F.
F. on 12 Jul 2012
did you try "intersect" ???
[C,ia,ib] = intersect(A,B) example

JoseLuis
JoseLuis on 12 Jul 2012
Thanks to all for your answers, I found something that works, http://www.mathworks.com/matlabcentral/newsreader/view_thread/310652#846320
CStrAinBP it does make it too,
JL

Community Treasure Hunt

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

Start Hunting!

Translated by