How do I combine a structure array into one structure
15 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Shelley Snider
il 8 Giu 2021
Risposto: James Tursa
il 8 Giu 2021
I have a structure array where each field of the same name is the same size. I want to combine each field over the array into one field. For example:
A(1).x = [1 2 3];
A(1).y = [4 5 6];
A(2).x = [7 8 9];
A(2).y = [10 11 12];
I want the new structure to be
B.x = [1 2 3;
7 8 9];
B.y = [4 5 6;
10 11 12];
These could also be a cell of structures if that makes things easier.
0 Commenti
Risposta accettata
Walter Roberson
il 8 Giu 2021
A(1).x = [1 2 3];
A(1).y = [4 5 6];
A(2).x = [7 8 9];
A(2).y = [10 11 12];
B.x = vertcat(A.x);
B.y = vertcat(A.y);
B
0 Commenti
Più risposte (1)
James Tursa
il 8 Giu 2021
F = fieldnames(A);
n = numel(F);
C = arrayfun(@(i)vertcat(A.(F{i})),1:n,'uni',false);
FC = [F';C];
B = struct(FC{:});
0 Commenti
Vedere anche
Categorie
Scopri di più su FPGA, ASIC, and SoC Development in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!