我有一个结构数组,其中每个值都是一个数字,我想对这些结构求和。
示例:
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
sum(S)应该是具有字段的结构“ SUM”:
SUM.a = 1+2 = 3
SUM.b.c = 1+3 = 4
SUM.b.d = 2+4 = 6
答案 0 :(得分:3)
我没有找到任何可实现此目的的matlab函数,因此我对该函数进行了编程:
function out = sumStruct(in)
% sum structure field per field
if isstruct(in)
for f = fields(in)'
out.(f{:}) = sumStruct([in.(f{:})]);
end
else
out = sum(in);
end
end
如果我做SUM = sumStruct(S),我会得到想要的东西。