How to relabel the structures fields in a sequence?

1 view (last 30 days)
I have a structure A which has 20 fields(bin_1 to bin_20), but i removed some field with null values. Now I am left with the following.
A = struct with fields:
bin_1: [14115×19 table]
bin_17: [9829×19 table]
bin_18: [11772×19 table]
bin_19: [14115×19 table]
Now I need program that converts the bin_ indices automatically to a sequence:
A = struct with fields:
bin_1: [14115×19 table]
bin_2: [9829×19 table]
bin_3: [11772×19 table]
bin_4: [14115×19 table]
Will really appreciate some help here. Thanks
  1 Comment
Stephen23
Stephen23 on 26 Oct 2023
You would not need to do this if you used a non-scalar structure. Better data design makes this problem disappear.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 26 Oct 2023
newfields = "bin_" + (1:length(fieldnames(A)));
A = cell2struct(struct2cell(A), newfields);

More Answers (0)

Categories

Find more on Tables in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!