How to convert all of a structures fields into strings that represent the complete names.
Mostrar comentarios más antiguos
I have a structure of variable numbers of fields. I want to display them on a GUI so that they can be changed by a user. So I want to display the field names just as you would see them in matlab.
For example, let's say the structure is
Offset = struct('X',0,'Y',0,'Z',0);
Rot = struct('Roll',0,'Pitch',0,'Yaw',0);
IMU = struct('Offset',Offset,'Rot',Rot);
EKFerrors = struct('MeasTimeout',1,'MaxBound',3);
EKF = struct('IMU',IMU,'Errors',EKFerrors,'InitMode',2);
So the list of elements of the structure are shown below
EKF.IMU.Offset.X
EKF.IMU.Offset.Y
EKF.IMU.Offset.Z
EKF.IMU.Rot.Roll
EKF.IMU.Rot.Pitch
EKF.IMU.Rot.Yaw
EKF.Errors.MeasTimeout
EKF.Errors.MaxBound
EKF.InitMode
I would like each of these in an array of strings or cells of strings that I can display on the GUI just as they are shown here (not their value, their name), but I would have an edit box so a user could enter in values. I just need the struct converted to these strings.
Respuesta aceptada
Más respuestas (1)
Use fieldnames():
Offset = struct('X',0,'Y',0,'Z',0);
Rot = struct('Roll',0,'Pitch',0,'Yaw',0);
IMU = struct('Offset',Offset,'Rot',Rot);
EKFerrors = struct('MeasTimeout',1,'MaxBound',3);
EKF = struct('IMU',IMU,'Errors',EKFerrors,'InitMode',2);
OffsetFields = fieldnames(Offset)
RotFields = fieldnames(Rot)
IMUFields = fieldnames(IMU)
EKFerrorsFields = fieldnames(EKFerrors)
EKFFields = fieldnames(EKF)
Categorías
Más información sobre Characters and Strings en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!