使用MATLAB进行验证时,时长会遇到两组数据合并,两个结构体合并的情况。但是MATLAB存在潜在的要求,可以进行合并操作的两个数组必须得是相同行或者相同列的。对于结构体来讲,则需要保证待合并的两个结构体的字段名完全一致。但是,总是会出现两个结构体不完全相同还需要进行合并的情况,这可能就是五彩斑斓的黑的要求吧,处理方法直接看代码吧。
function output = funcAppendStruct(struct1, struct2)
%此函数的默认情况是两个结构体存在相同的一部分字段名,另一部分不同。
%且相同字段名的数据格式完全相同;
%分别获取两个结构体字段名
strName1 = fieldnames(struct1);
strName2 = fieldnames(struct2);
for idx = 1:length(strName1)
%判断结构体1中的字段名在结构体2中的位置
index1 = ismember(strName2, strName1{idx});
pos1 = find(index1 == 1);
%如果结构体2中包含结构体1的字段名,则进行合并;
%如果结构体2中不包含结构体1的字段名,则进增加。
if pos1
struct2.(strName2{pos1}) = [struct2.(strName2{pos1}); struct1.(strName1{idx})];
else
struct2.(strName1{idx}) = struct1.(strName1{idx});
end
end
output = struct2;