How to find a string in the following cell structure?

23 vues (au cours des 30 derniers jours)
Mr M.
Mr M. le 15 Oct 2018
Modifié(e) : Stephen23 le 15 Oct 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?

Réponses (2)

madhan ravi
madhan ravi le 15 Oct 2018
Modifié(e) : madhan ravi le 15 Oct 2018
  1 commentaire
Mr M.
Mr M. le 15 Oct 2018
Modifié(e) : Mr M. le 15 Oct 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}

Connectez-vous pour commenter.


Stephen23
Stephen23 le 15 Oct 2018
Modifié(e) : Stephen23 le 15 Oct 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:

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by