我在 Matlab 中使用结构以直观的方式组织我的结果。我的分析相当复杂且层次分明,所以这很有效——逻辑上。例如:
resultObj.multivariate.individual.distributed.raw.alpha10(1).classification(1)
。结构的每一层都有几个字段。每个alpha
字段都是一个结构化数组,为每个数据集编制索引,classification
同时也是一个结构化数组,用于在数据上运行的每个交叉验证。
为简化起见,考虑分类字段:
>> classification
ans =
1x8 struct array with fields:
bestLambda
bestBetas
scores
statObj
fitObj
其中statObj
有字段(例如):
dprime: 6.5811
hit: 20
miss: 0
falseAlarms: 0
correctRejections: 30
当然,每个主题和交叉验证运行的字段具有不同的值。鉴于这种结构,是否有一种好方法可以在交叉验证运行(即 的元素classification
)中找到 dprime 的平均值,而无需构造一个 for 循环来提取、存储和最终计算?
我希望这reshape(struct2array(classification.statObj),5,8)
会起作用,所以我可以构建一个矩阵,其中统计数据作为行,交叉验证作为列运行,但这不起作用。我把这些项目放在他们自己的结构中,因为这些字段包含classification
各种类型的元素(矩阵、结构、整数)。
我不反对完全重组我的输出,但我希望它以这样一种方式完成,该组织是相当自我评论的,我可以说从现在开始一年后回到这个结构并记住一切的内容和位置是。