Use a structure with fields in a loop - Outputs & indexing ??
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dimitris K
am 10 Sep. 2021
Kommentiert: Dimitris K
am 10 Sep. 2021
Hello everyone,
I am using a structure to output all my results from a function organised in different fields. My struct contains 10 fields - and as my loop has 101 steps my struct ends up being a struct array (1*101) with 10 fields.
Some of my fields are numeric arrays e.g. Sig (6*1) and i want to use the first value of each of these Sig in the 101 fields to plot them. How could i do this easily?
The way i thought is:
hist_st_cell=struct2cell(hist_state);
Sig_cell=hist_st_cell(1,1,:);
Sig_mat=cell2mat(Sig_cell);
Sig1_plot=Sig_mat(1,1,:);
Is there a better suggestion?
0 Kommentare
Akzeptierte Antwort
Stephen23
am 10 Sep. 2021
Where S is your structure:
F = @(a)a.Sig(1);
V = arrayfun(F,S)
3 Kommentare
Stephen23
am 10 Sep. 2021
Bearbeitet: Stephen23
am 10 Sep. 2021
The first line defines an anonymous function:
The anonymous function accepts one input "a" (which will be a scalar structure) and gets the first element of its field "Sig". The second line applies this function to each element of your structure array (remember each element of any array is a scalar array).
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!