Matlab 结构体数组 gaunthan Posted on Oct 29 2016 ? Matlab ? ## 结构体 Matlab中的结构体由一些字段组成,这些字段通过一些文本区分,以`.`引用,就跟C语言的结构体一样。如: ```matlab S.name = 'han'; S.score = 99; S.grade = 'A'; ``` 可以在命令行中输入结构体名来查看它的成员:  创建结构体还可以使用`struct()`函数,如下面这段代码与上面的代码作用是等同的: S = struct('name', 'han', 'score', 99, 'grade', 'A') ## 结构体数组 上面我们创建的其实是结构体数组,只是因为其仅含有一个元素,所以可以直接显示出这个元素。下面我们使用`struct()`函数来创建一个结构体,并将其添加到结构体数组中:  现在我们可以看到差别了。当结构体数组的元素个数大于1时,显示结构体数组将输出它含有的结构体数量,以及这些结构体的成员域。 结构体数组支持直接访问其元素的同一字段,使得我们可以快速取出一组值:  可以像下面这样快速计算学生的平均成绩: avgScore = sum([S.score])/length(S) ## 动态字段名 最经常使用的访问结构体数据的方法是直接指定结构体的字段名。除了这一方法,Matlab还支持一个更为灵活的用法:动态字段名。其格式如下: structName.(expression) 表达式`expression`需要得出一个属于structName的字段名。动态字段名经常用在函数之中,如: ```matlab function values = getfields(S, fieldName) values = [ S.(fieldName) ]; end scores = getfields(S, 'score') ``` 赏 Wechat Pay Alipay C++ 为自定义类型提供不抛出异常的swap Matlab 单元数组