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

2 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

Stephen23
Stephen23 el 21 de Feb. de 2019
Editada: Stephen23 el 21 de Feb. de 2019
ismember(Channels,{'P3','P4','P7','P8'})

Más respuestas (1)

Paul Fishback
Paul Fishback el 21 de Feb. de 2019
Editada: Paul Fishback el 21 de Feb. de 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'}))

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by