Retrieve data from a nested structure
42 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I am looking for some help with extracting data from a nested structure. I have a structure like that shown below.
I can call a single value from the structure easily e.g data.prop(1).Area will give me the value of Area from the first prop structure.
I wish to extract easily all of a certain field, the only way I can currently do this is with a loop. For example I might wish to make an array with all of the Areas.
myData = data.prop(1:3).Area
However this doesn't work.
My current solution is to loop through the structure as follows:
for i = 1:length(data)
myData(i,1) = data.prop(i).Area
end
If there is a better way to achieve this I would be very interested. Thank you for the help
0 commentaires
Réponses (2)
Martin Dale
le 8 Déc 2021
% use a 2 stage process ( or more stages for a deeper nested structure)
tmp = [data.prop];
areas = [tmp.area];
0 commentaires
Walter Roberson
le 19 Fév 2018
myData = [data.prop.Area];
5 commentaires
Walter Roberson
le 8 Déc 2021
N = 10;
data.prop = struct('Area', num2cell(rand(1,N)), 'Perimeter', num2cell(randi(50,1,N)), 'Centre', num2cell(rand(N,2),2).');
data.prop
[data.prop.Area]
You can see that my data.prop is a non-scalar structure and that it still works.
Voir également
Catégories
En savoir plus sur Structures dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!