Access data in a structure array using index

2 visualizaciones (últimos 30 días)
Nathan
Nathan el 9 de Oct. de 2013
Comentada: Azzi Abdelmalek el 9 de Oct. de 2013
After a bit of searching the internet I still haven't come up with a good way to do this without a for loop. I have a structure like the following:
S(1).x{1}=1;
S(1).name{1}='a';
S(1).x{2}=2;
S(1).name{2}='b';
S(2).x{1}=2;
S(2).name{1}='b';
[tf loc]=arrayfun(@(x)ismember('b',x.name),S)
This gives
loc=[2 1]
so I want to access S(1).x(2) and S(2).x(1). Is there a way to extract the data I want into an array without using a loop?
  2 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 9 de Oct. de 2013
Your question is not clear, the answer is in your question
S(1).x(2)
S(2).x(1)
Nathan
Nathan el 9 de Oct. de 2013
Is there some way to achieve it in a single line rather than accessing each S(i) individually?

Iniciar sesión para comentar.

Respuestas (1)

Azzi Abdelmalek
Azzi Abdelmalek el 9 de Oct. de 2013
Editada: Azzi Abdelmalek el 9 de Oct. de 2013
If you want to extract all S.x
v={S.x}
% to have S(1).x(2)
v{1}(2)
  1 comentario
Azzi Abdelmalek
Azzi Abdelmalek el 9 de Oct. de 2013
There is no reason to avoid systematically a for loop.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by