arrays - 对单元结构内的matlab数组求和
问题描述
我有一个 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}.A ...
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{:}]) ),则有一个求和函数,但我只想要每个求和中的特定字段。有什么想法吗?
解决方案
可能有更多“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
这假设您想要 sum of all S{1...N, 1}.A
,S{1...N, 2}.B
依此类推,如问题中所示。如果你也想要S{1...N, 1}.B
,你需要第三个循环和 2 个索引sumStruct
——它应该相对简单地实现。
推荐阅读
- sql - 用同一组中的下一个值填充值
- r - 使用 st_read() 导入多个 GPX 文件?
- flutter - FloatingActionButton 动画在滚动时重建
- javascript - 是否可以从我网页上的表格单元格中复制一条数据并将其放在我的另一个网页上?
- mongodb - 什么是 Mongo 数据库与集群?
- javascript - TypeError:无法读取未定义的属性“getters” - Vue 并构建为 Web 组件
- openshift - Openshift 密钥命名约束
- java - 对象和 JButton 的二维数组
- api - 使用 Twitter 广告 API 创建定位条件时遇到错误
- node.js - Azure 应用服务未显示推送到 GitHub 的更改