Access data in a structure array using index

2 Ansichten (letzte 30 Tage)
Nathan
Nathan am 9 Okt. 2013
Kommentiert: Azzi Abdelmalek am 9 Okt. 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 Kommentare
Azzi Abdelmalek
Azzi Abdelmalek am 9 Okt. 2013
Your question is not clear, the answer is in your question
S(1).x(2)
S(2).x(1)
Nathan
Nathan am 9 Okt. 2013
Is there some way to achieve it in a single line rather than accessing each S(i) individually?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 9 Okt. 2013
Bearbeitet: Azzi Abdelmalek am 9 Okt. 2013
If you want to extract all S.x
v={S.x}
% to have S(1).x(2)
v{1}(2)
  1 Kommentar
Azzi Abdelmalek
Azzi Abdelmalek am 9 Okt. 2013
There is no reason to avoid systematically a for loop.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by