结构体(2)
如果将生成逗号分隔列表的表达式括在方括号中,MATLAB 会将该列表中的每一项都存储在数组中。示例中,MATLAB 创建一个数值行向量,该向量包含结构体数组 S 的每个元素的 score 字段:
Matlab
scores = [S.score]
scores =
83 91 70
avg_score = sum(scores)/length(scores)
avg_score =
81.3333
要根据某个文本字段(例如,name)创建字符数组,需要对 S.name 生成的逗号分隔列表调用 char 函数:
Matlab
names = char(S.name)
names =
Ed Plum
Toni Miller
Jerry Garcia
同样,通过将生成列表的表达式括入花括号中,可以根据 name 字段创建元胞数组:
Matlab
names = {S.name}
names =
'Ed Plum' 'Toni Miller' 'Jerry Garcia'
要将结构体数组的每个元素的字段赋值给结构体外部的单独变量,需要指定等号左侧的每个输出,并将其全部括在方括号中:
Matlab
[N1 N2 N3] = S.name
N1 =
Ed Plum
N2 =
Toni Miller
N3 =
Jerry Garcia