MATLAB Answers

0

Looking for an efficient way of finding elements in a cell array of character vectors

Asked by Paul Fishback on 21 Feb 2019
Latest activity Edited by Paul Fishback on 21 Feb 2019
I have a cell array of character vectors, named "Channels", in which each entry corresponds a particular EEG channel label. I'd like to find indices that correspond to all P channels. For a single channel, P3, I have no problem. For example,
index = find(strcmp(Channels, 'P3'))
returns the correct index.
To find those indices that correspond to all four P labels, P3, P4, P7, P8, I can "glue" things together, such as
index = find(strcmp(Channels, 'P3')|strcmp(Channels,'P4')|strcmp(Channels,'P7')|strcmp(Channels,'P8'))
Of course, there has to be a more efficient way. I can't seem to find the correct manner to combine 'P3', 'P4', 'P7','P8' so so as to do it one step.

  0 Comments

Sign in to comment.

Products


Release

R2018b

2 Answers

Answer by Stephen Cobeldick on 21 Feb 2019
Edited by Stephen Cobeldick on 21 Feb 2019
 Accepted Answer

ismember(Channels,{'P3','P4','P7','P8'})

  0 Comments

Sign in to comment.


Answer by Paul Fishback on 21 Feb 2019
Edited by Paul Fishback on 21 Feb 2019

Thanks very much. The ismember will return a logical array. If I tack on the find command, I get the desired indices as well:
find(ismember(Channels,{'P3','P4','P7','P8'}))

  0 Comments

Sign in to comment.