How to find a string in the following cell structure?

26 visualizaciones (últimos 30 días)
Mr M.
Mr M. el 15 de Oct. de 2018
Editada: Stephen23 el 15 de Oct. de 2018
I have s{1}.name = 'abc', s{2}.name = 'xyz', ..., s{n}.name = 'something'. And I would like to know the existance of a strin mystr ='aaa' among these names, and its index. Is it possible to do without a for cycle?

Respuestas (2)

madhan ravi
madhan ravi el 15 de Oct. de 2018
Editada: madhan ravi el 15 de Oct. de 2018
index = find(strcmp({structname.field}, 'string')==1)
  1 comentario
Mr M.
Mr M. el 15 de Oct. de 2018
Editada: Mr M. el 15 de Oct. de 2018
dot indexing is not supported for variables of this type
synatax error:
mparams{1}.name = 'a'; params{1}.value = 13; params{2}.name = 'b'; params{2}.value = 42; {params.name}

Iniciar sesión para comentar.


Stephen23
Stephen23 el 15 de Oct. de 2018
Editada: Stephen23 el 15 de Oct. de 2018
Storing lots of separate scalar structures in a cell array is less convenient than just using one non-scalar structure. You should replace the cell array of scalar structures with one single non-scalar structure, then your task is trivial:
c{1}.name = 'abc';
c{2}.name = 'xyz';
c{3}.name = 'something';
s = [c{:}] % convert cell of scalar structures to non-scalar structure.
x = strcmp('xyz',{s.name})
Even better would be to avoid the cell array entirely, and just use a non-scalar structure right from the start:
s(1).name = 'abc';
s(2).name = 'xyz';
s(3).name = 'something';
x = strcmp('xyz',{s.name})
Read more about how this works:

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by