Creating a variable with the values in the same fields of different structures

1 visualización (últimos 30 días)
Hi,
I am writing an app where I want to compare the results stored in different mat sessions, say S1.mat, S2.mat,....... (the names are in reality more complex but this is not the point).
The number of sessions is not fixed, it may vary. Each session contains a structure, say I1, I2,....
These structures have all the same fields, I copy below only same of that:
Q: 9
Ifx: [100×1 double]
T: 180
P: [12×1 struct]
Pars: [12×1 double]
After loading the (not fixed) number of the structures, I want to create new varibales by combining the values having the same fields, for instance:
1) Qnew=[I1.Q, I2.Q,...In.Q]; % combining values in field Q
Is there a command for that?
2) Is possible to extend this to the structures too?
In this case I need to recover the names of the fields and to create a variable wiht the same name:
A1=[I1.P.A1, I2.P.A2,...In.P.An];
Thank you in advance!

Respuesta aceptada

Matt J
Matt J el 17 de Mzo. de 2022
Editada: Matt J el 17 de Mzo. de 2022
Well, I won't give you a solution that creates separate variables, since there are standard hazards associated with that. However, the attached file will probably be of use to you. Example,
I(1).a=1; I(1).b=10; I(1).c=100;
I(2).a=2; I(2).b=20; I(2).c=200;
I(3).a=3; I(3).b=30; I(3).c=300;
out=scalarize_struct(I)
out = struct with fields:
a: [1 2 3] b: [10 20 30] c: [100 200 300]
  6 comentarios
Matt J
Matt J el 17 de Mzo. de 2022
The command "S"+1:n does not work for me because of the symbol :.
Shouldn't be a problem with my latest edit.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by