Create an array of structures
Show older comments
Hello!
I'm trying to create a 4x5 matrix containing a 1x3 structure in each of its cells but I can't get the result shown in the picture. I only managed to get a 9x1 structure.

position = {'corner';'edge';'corner';'edge';'inside';'edge';'corner';'edge';'corner'};
temperature = {25;25;25;25;50;25;25;25;25};
ic = {0;0;0;0;0;0;0;0;0};
PCB = [position, temperature ,ic]
cell2struct(PCB,{'position';'temperature';'ic'},1)
Does anyone know how to create it? Thank you very much!
4 Comments
Most likely you are confusing the number of fields with the size of a structure element. The size and the number of fields are totally independent things. Every element of a structure is scalar, no matter how many fields it has. So your example would be a 4x5 structure (with 3 fields), and does NOT contain 1x3 structs, as your image shows.
You provide 9 data points but you want a structure with 20 elements: where are the missing data supposed to come from? What values are supposed to be placed in the other 11 structure elements?
Izan Segarra
on 11 Oct 2020
Stephen23
on 11 Oct 2020
"What would be the correct way to carry out the structure of 4x5?"
That depends on the format of the input data:
- Are they generated one-at-a-time in a loop (or similar), or are they available in arrays?
- Can the data arrays (if in arrays) change size? What size do the arrays use?
Possibly struct or one of the conversion functions would suit your task.
Izan Segarra
on 11 Oct 2020
Accepted Answer
More Answers (0)
Categories
Find more on Programming in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!