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

Stephen23
Stephen23 2020년 10월 11일
편집: Stephen23 2020년 10월 11일
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
Izan Segarra 2020년 10월 11일
Hello Stephen! Thank you very much for your answer! You are right, what I was trying to do is a 4x5 structure with 3 fields and their corresponding names (position, temperature and ic). The data would come from the result of an iterative algorithm, but in this case, to check the structure all the elements contain the same value as the element (1,1).
What would be the correct way to carry out the structure of 4x5? Thank you.
Stephen23
Stephen23 2020년 10월 11일
"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
Izan Segarra 2020년 10월 11일
The data are available in fixed-size arrays as follows:
- position: (4x5)
- temperature: (4x5)
- ic: (4x5)

댓글을 달려면 로그인하십시오.

 채택된 답변

Steven Lord
Steven Lord 2020년 10월 11일

1 개 추천

If the field values you pass into the struct function are a cell array, MATLAB will make a struct array the same size as the cell array. Each element of the struct will contain the data from the corresponding cell of the cell array.
A = {1 2 3; 4 5 6};
B = {'apple', 'banana', 'banana'; 'cherry', 'cherry', 'apple'};
S = struct('number', A, 'fruit', B);
T = S(2, 2) % T.number is 5, T.fruit is 'cherry'
See the second and third items in the Description section of the documentation page for the struct function for more information.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Programming에 대해 자세히 알아보기

제품

질문:

2020년 10월 11일

답변:

2020년 10월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by