CATSTRUCT连接或合并具有不同字段名的结构
X = CATSTRUCT(S1,S2,S3,...)将结构S1,S2,S3 ...合并为一个新结构X。X包含各种
结构中存在的所有字段 。例如:
A.name = 'Me' ;
B.income = 99999 ;
X = catstruct(A,B)
% -> X.name = 'Me' ;
% X.income = 99999 ;
如果字段名在结构之间不是唯一的(即,一个以上的结构中存在一个字段名),则仅使用具有该字段的最后一个结构中的值。在这种情况下,字段按字母顺序排序。也会发出警告。
一个例子:
S1.name = 'Me' ;
S2.age = 20 ; S3.age = 30 ; S4.age = 40 ;
S5.honest = false ;
Y = catstruct(S1,S2,S3,S4,S5) % use value from S4
输入可以是结构数组。所有结构应具有相同的大小。例如:
C(1).bb = 1 ; C(2).bb = 2 ;
D(1).aa = 3 ; D(2).aa = 4 ;
CD = catstruct(C,D) % CD is a 1x2 structure array with fields bb and aa
最后一个输入可以是字符串“ sorted”。在这种情况下,
CATSTRUCT(S1,S2,...,'sorted')将按字母顺序对字段名称进行排序。要对结构A的字段名进行排序,可以使用CATSTRUCT(A,'sorted'),但我建议使用ORDERFIELDS。
当没有要串联的内容时,结果将是一个空结构(没有字段的0x0结构数组)。
注意
要串联相似的结构数组,可以使用简单的串联:
A = dir('*.mat') ; B = dir('*.m') ; C = [A ; B] ;
完整资料领取请阅读全文
未经允许不得转载!Matlab串联/合并结构【含Matlab源码】