【问题标题】:How to add the values of all the fields in a struct in matlab?如何在matlab中添加结构中所有字段的值?
【发布时间】:2016-10-12 10:03:29
【问题描述】:

我有一个结构体,比如说ABC,其维度为“1*100”结构体,它有一个名为EFG 的字段,每个字段的值均为1.6

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

我尝试使用sum,但它不适合这个。如何做到这一点?

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

这些都没用

【问题讨论】:

  • 您是说ABC 拥有100 个结构,每个结构都有一个名为EFG 的字段,对吗?更好的是,你能提供创建 ABC 的代码吗?
  • 不,我的意思是 ABC 持有 100 个 1*1 结构

标签: matlab struct sum add


【解决方案1】:

你需要括号:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 2014-09-09
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多