accessing multiple individual struct field values
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have made a structure like so;
xfr = struct('name',[],'sn',zeros(tmp,1),'xs',zeros(tmp,1),'f',[],'amp',[],'unphas',[],'lincoh',[]);
and filled the fields amp,unphas, and lincoh with 4 double values. xfr is 1x15. I need to make a scatter plot of one field vs the first value of unphas [unphas(1)]
I can easily extract all of the xs values: xfr.xs
How can I extract the first (or second, third, or fourth) value of unphas for all xfr ?
I have tried many different ways without success
a = [xfr(1:15).unphas(4)]
Expected one output from a curly brace or dot indexing
expression, but there were 15 results.
0 commentaires
Réponses (1)
Stephen23
le 20 Mai 2021
Modifié(e) : Stephen23
le 20 Mai 2021
S(1).data = [1;2;3];
S(2).data = [4;5;6];
S(3).data = [7;8;9];
n = 2;
V = arrayfun(@(s)s.data(n),S)
or (assuming that each field contains a column vector):
M = [S.data];
V = M(2,:)
2 commentaires
Stephen23
le 21 Mai 2021
The arrayfun approach does not assume anything about the orientation or size of the array. Try that first.
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!