如何在matlab中添加结构中所有字段的值?

时间:2016-10-12 10:03:29

标签: matlab struct sum add

我有一个结构让我们说ABC尺寸" 1 * 100" struct,它有一个名为EFG的字段,每个字段的值为1.6

我需要使用MATLAB获得1.6+1.6+1.6+.......+1.6 100次。

我尝试使用sum,但它并不适合这种情况。怎么办呢?

Sum(ABC(:).EFG)
sum(ABC(:).EFG,2)

这些不起作用

1 个答案:

答案 0 :(得分:3)

你需要括号:

for ii = 1:100         % Just creating the struct
   ABC(ii).EFG = 1.6;  % 1x100 struct with the field EFG
end

sum([ABC(:).EFG])
ans =
  160.0000

请注意[ABC(:).EFG]周围的括号。

原因是,如果没有它,您将获得ABC(:).EFG中无法在sum中使用的输出:

ABC(:).EFG
ans =
    1.6000
ans =
    1.6000
ans =
    1.6000
ans =
    1.6000
ans =
    1.6000

连接它,你将得到一些你可以使用的东西:

[ABC(:).EFG]
ans =
    1.6000    1.6000    1.6000    1.6000    1.6000