gpt4 book ai didi

arrays - 是否可以在不循环的情况下对 Matlab 中的结构子字段数组进行平均?

转载 作者:太空宇宙 更新时间:2023-11-03 20:15:20 25 4
gpt4 key购买 nike

我有一个函数可以处理单个数据集,并将结果指标存储在数据集中,如下所示:

trial_data.output_metric_a.value_1 = 2;
...
trial_1 = trial_data;

此函数应用于许多不同的试验并存储为数组结构:

% trial_1.output_metric_a.value_1 = 4
% trial_2.output_metric_a.value_1 = 2
trials = [trial_1 ; trial_2];

是否可以得到子字段值的平均值和标准差没有遍历数据结构?

理想情况下:

mean_trials = mean(trials)
mean_trials.output_metric_a.value_1 == 3 % true

解决这个问题的可能的循环实现可能是(显然这还有很多不足之处):

output_metric_a_value_1 = [];
...

for i:length(trials)
output_metric_a_value_1(end+1) = trials(i).output_metric_a.value_1;
... % For each output metric and value
end

mean_trials.output_metric_a.value_1 = mean(output_metric_a_value_1);

最佳答案

您可以将主结构体转换为单元格,然后对内容进行操作:

% your data base:
trial_1.output_metric_a.value_1 = 4
trial_2.output_metric_a.value_1 = 2
trials = [trial_1 ; trial_2];

% convert to cell:
Ctrials=struct2cell(trials);
Atrials=[Ctrials{:}];
meanTrials=mean([Atrials.value_1])
meanTrials=
3

关于arrays - 是否可以在不循环的情况下对 Matlab 中的结构子字段数组进行平均?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48145108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com