提问人:Miss_Orchid 提问时间:7/2/2018 更新时间:7/2/2018 访问量:64
对单元结构中的 MATLAB 数组求和
sum matlab arrays within cell structure
问:
我有一个 221 x 24 的元胞阵列 S。每个数组中都有另一个由几个不同字段组成的数组(假设 A、B、C 和 D),其中每个字段(A、B、C、D)都是一个 50 x 50 的数组。我只想对数组 S 的每一列中的 A、B、C 和 D 求和。例如:
S{1,1}。A + S{2,1}。A + ... + S{23,1}。一个。。。
S{1,2}.B + S{2,2}。B + ... + S{153,2}。B ...
S{111,3}。C + S{117,3}。C + ... + S{230,3}。C ...
最简单的方法是什么?我知道如果结构中没有字段,则有一个函数可以求和(例如,sum([S{:}]) ),但我只想对每个字段中的特定字段求和。有什么想法吗?
答:
0赞
Zizy Archer
7/2/2018
#1
可能还有更多的“MATLABy”方法来避免循环并使之更简单,但这个循环应该相当简单:
FN = fieldnames(S{1});
for i = 1 : size(S, 1)
sumStruct{i} = 0;
for j = 1 : size(S, 2)
sumStruct{i} = sumStruct{i} + S{i,j}.(FN{j});
end
end
这假设您想要所有 的总和,依此类推,如问题中所示。如果你也想要,你需要第 3 个循环和 2 个索引 - 它应该相对简单地实现。S{1...N, 1}.A
S{1...N, 2}.B
S{1...N, 1}.B
sumStruct
评论