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 ExchangeProgramming についてさらに検索

製品

質問済み:

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