MATLAB中不同结构体之间进行合并

使用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;

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值