Access data in a structure array using index
Show older comments
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 Comments
Azzi Abdelmalek
on 9 Oct 2013
Your question is not clear, the answer is in your question
S(1).x(2)
S(2).x(1)
Nathan
on 9 Oct 2013
Answers (1)
Azzi Abdelmalek
on 9 Oct 2013
Edited: Azzi Abdelmalek
on 9 Oct 2013
If you want to extract all S.x
v={S.x}
% to have S(1).x(2)
v{1}(2)
1 Comment
Azzi Abdelmalek
on 9 Oct 2013
There is no reason to avoid systematically a for loop.
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!