Indexing into a structure to retain/remove elements based on a string

1 visualizzazione (ultimi 30 giorni)
I have a variable containing a string for one eye (i.e. selectedEye = LEFT) and a struct called "x" with 2 fields:
x =
eye: {1x1938 cell}
timestamp: [1x1938 double]
Each cell in the field "eye" contains the string "LEFT" or "RIGHT". What code would I use to retain cells and corresponding timestamps for just the left eye (i.e. deleting eye/timestamp entries for one eye)?
I tried the following to try to obtain a logical:
x.eye = x.eye(regexp(cellstr(selectedEye),x.eye))
...but received an error ("Function 'subsindex' is not defined for values of class 'cell'.")

Risposta accettata

Bruno Luong
Bruno Luong il 18 Set 2018
retain = strcmpi(X.eye,'LEFT')); % selectedEye is 'LEFT'
X.eye = X.eye(retain); % somewhat useless assignment
X.timestamp= X.timestamp(retain);
  4 Commenti
James Tursa
James Tursa il 18 Set 2018
I agree with Bruno. Since you already know exactly what is in X.eye by the way you constructed it, do you really even need it at all?
Al_G
Al_G il 19 Set 2018
Very good point, it's gratuitous. I'll remove it completely. Thanks!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Structures in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by