La estructura de Matlab se fusiona
-
28-10-2019 - |
Pregunta
Tengo la siguiente estructura
data =
id: [143x1 double]
datenum: [143x1 double]
Timestamp: {143x1 cell}
Min_F1_USA_40__u: [143x1 double]
Max_F1_USA_40__u: [143x1 double]
Mean_F1_USA_40__u: [143x1 double]
Stddev_F1_USA_40__u: [143x1 double]
MeanVals_F1_USA_40__u: [143x1 double]
a0_F1_USA_40__u: [143x1 double]
a1_F1_USA_40__u: [143x1 double]
a2_F1_USA_40__u: [143x1 double]
a3_F1_USA_40__u: [143x1 double]
a4_F1_USA_40__u: [143x1 double]
Entonces, tengo más de 50 campo en la estructura
Tengo otra estructura 3 con la misma estructura y quiero fusionar esta estructura
Cuando tenga 3 struct, obtendré la siguiente estructura
data =
id: [429x1 double]
datenum: [429x1 double]
Timestamp: {429x1 cell}
Min_F1_USA_40__u: [429x1 double]
Max_F1_USA_40__u: [429x1 double]
Mean_F1_USA_40__u: [429x1 double]
Stddev_F1_USA_40__u: [429x1 double]
.
.
.
Solución
Lo siento, había entendido mal tu pregunta, aquí un segundo intento.
Tal vez haya una manera más fácil, pero puede obtener una lista de todos los campos en data
usando mynames=fieldnames(data)
. Luego puede atravesarlos a todos y asignarlos a una estructura común como esta:
combineddata.(mynames{i})=[data1.(mynames{i}); data2.(mynames{i}); data3.(mynames{i})];
Otros consejos
Aquí hay una solución que usa las funciones Nombres de campo, Cañón celular, y Estructiva Cell2:
data = [data1 data2 data3 data4]; %# Create a structure array of your data
names = fieldnames(data); %# Get the field names
cellData = cellfun(@(f) {vertcat(data.(f))},names); %# Collect field data into
%# a cell array
data = cell2struct(cellData,names); %# Convert the cell array into a structure
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow