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

2 Ansichten (letzte 30 Tage)
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.

Akzeptierte Antwort

Stephen23
Stephen23 am 21 Feb. 2019
Bearbeitet: Stephen23 am 21 Feb. 2019
ismember(Channels,{'P3','P4','P7','P8'})

Weitere Antworten (1)

Paul Fishback
Paul Fishback am 21 Feb. 2019
Bearbeitet: Paul Fishback am 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'}))

Kategorien

Mehr zu Data Import and Analysis finden Sie in Help Center und File Exchange

Produkte


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by