Create a 1 x m Structure instead of a 1x1 Structure

54 次查看(过去 30 天)
Hello,
Im tring to create a 1 x m structure instead of a 1x1. When doing the following, it creates a 1x1 struct
MySturcture.FirstField = [1:100]
MySturcture.SecondField = [1:100]
I would like to open the struct to the fields being side by side (1x2 structure), displaying all of the data, similar to the image in this question.
[FirstField] [SecondField]
1 1
2 2
3 3
etc.. etc..
Any help would be greatly appreciated.

采纳的回答

Stephen23
Stephen23 2020-5-8
S = struct('FirstField',num2cell(1:100), 'SecondField',num2cell(1:100))
  1 个评论
Ruger28
Ruger28 2020-5-8
Thanks, Stephen! This is exactly what I was looking for. Kind of confused why they have to be cells instead of a double, but definitely what I needed. Thanks again.

请先登录,再进行评论。

更多回答(2 个)

Ameer Hamza
Ameer Hamza 2020-5-8
编辑:Ameer Hamza 2020-5-8
This is one of the way.
MySturcture(100).FirstField = [];
MySturcture(100).SecondField = [];
A = num2cell(1:100);
[MySturcture.FirstField] = A{:};
[MySturcture.SecondField] = A{:};
  1 个评论
Ruger28
Ruger28 2020-5-8
Thank you kindly, but Stephen's answer was a little simplier to implement. Thanks, though!

请先登录,再进行评论。


Steven Lord
Steven Lord 2020-5-8
Your second design looks less like a struct and more like a table.
x = (0:11).';
y = x.^2;
t = table(x, y)
If you wanted a new "field" (table variable) you can add them, using variables from the table and/or variables from the workspace as desired.
t.z = t.y - t.x/2
t.w = sinpi(x./4)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by