Matlab:如何连接结构数组的字段?

时间:2018-07-02 16:49:34

标签: matlab matlab-struct

我有一个结构数组,其中每个值都是一个数字,我想将这些结构连接为一个。

示例:

S是结构数组,每个元素都具有相同的结构

S(1).a = 1
S(1).b.c = 1
S(1).b.d = 2

S(2).a = 2
S(2).b.c = 3
S(2).b.d = 4

cat(S)应该是具有以下字段的结构“ CAT”:

CAT.a = [1 2]
CAT.b.c = [1 3]
CAT.b.d = [2 4]

1 个答案:

答案 0 :(得分:0)

我没有找到任何可实现此目的的matlab函数,因此我对该函数进行了编程:

function out = catStruct(in)
% cat structure field per field

    if isstruct(in)
        for f = fields(in)'
            out.(f{:}) = catStruct([in.(f{:})]);
        end
    else
        out = in;
    end
end

如果我做CAT = catStruct(S),我会得到想要的东西。