如何获得具体的数据从一个结构体数组成员吗?

4视图(30天)
例如,
b =结构(“名字”,“JPEG”,“年龄”,“18”);
c = repmat (b, - 3, - 1);
d = c.name;
c.name
为什么是“c.name”的结果不同于“d = c.name”的结果吗?
如何让成员数据直接从一个结构体数组或矩阵?比如c.name ?
另一个问题,如何创建一个结构体数组或矩阵直接就像0(2、3),但结构(2、3)不起作用,所以如何?

接受的答案

乔治
乔治 2016年11月4日
医生的 结构体
“当你访问一个nonscalar结构领域,如年代。f, MATLAB®返回一个逗号分隔的列表。在这种情况下,s。f等于(1)。f、s (2)。f、s (3) .f。”
所以你的d = c.name相当于
d = c (1) . name, c (2) . name, c (3) . name。
试一试
d, e, f = c.name
看到差别。看到 在这里 更多信息关于如何访问数据结构。
结构体(2、3)不起作用,因为它试图创建一个1 x1结构体数组字段:2和值:3。现场需要一个char数组。
1评论
肖
2016年11月5日
谢谢你!受你的启发,我尝试d = [c (1) . name, c (2) . name, c (3) . name]
d = [c.name]对于大型结构把结果放在一起,但是需要再划分
结果数组中。所以也许for循环是必需的。
和创建一个结构矩阵,也许for循环方法或repmat方式是必要的。

登录置评。

答案(1)

亚历山德拉Harkai
亚历山德拉Harkai 2016年11月4日
编辑:亚历山德拉Harkai 2016年11月4日
c是就是所谓的什么 nonscalar结构体数组 。然后“你不能分配到单个变量列表语法v =。f因为字段可以包含不同类型的数据”。按照文档,所以变量d只能得到c (1) . name,因此他们将是不同的。
2的评论
亚历山德拉Harkai
亚历山德拉Harkai 2016年11月7日
请不要改变你的问题一旦被回答,这是首选的新开始。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!