How to create a struct?
Show older comments
Hello,
How can i split my "scenarioServiceCopy" 1*54 struct in two parts? For example:
- 1-30 fields -> part 1
- 31-54 fields in part 2
In this way i store the data in my struct:
parameter.scenarioServiceCopy(count).(namess{7})=char(array_(1,7))
I do this with a for loop. It works but everything is in one "matrix/table/struct".
I want to have something like this:
- part 1 first 30 fields: parameter.scenarioServiceCopy(1)
- part 2 the last 24 fields: parameter.scenarioServiceCopy(2)
But does something like this works



Thanks
3 Comments
Walter Roberson
on 17 Jul 2020
Sometimes the easiest way to program it is to struct2cell(), extract a subset and cell2struct() that back.
Josy M
on 17 Jul 2020
Walter Roberson
on 18 Jul 2020
How should 54 input fields map on to 2*85 with 16 fields?
v = fieldnames(scenarioServiceCopy);
tc = struct2cell(scenarioServiceCopy);
p1 = cell2struct(tc(1:30,:,:),v(1:30));
p2 = cell2struct(tc(31:end,:,:), v(31:end));
parameter.scenarioServiceCopy1 = p1;
parameter.scenarioServiceCopy2 = p2;
Answers (1)
Bhupendra Prajapati
on 17 Jul 2020
Edited: madhan ravi
on 17 Jul 2020
parameter = struct(scenarioServiceCopy(1),scenarioServiceCopy(2));
Just follow the exmaples given at the link below ->
Categories
Find more on Structures 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!