MATLAB 计算数组加权平均值:区间划分与加权
% 输入数组 data = [1 2 3 4 5 6 7 8 9 10];
% 将数据排序 sorted_data = sort(data);
% 定义区间个数 num_intervals = 3;
% 划分区间 intervals = linspace(min(sorted_data), max(sorted_data), num_intervals+1);
% 初始化加权平均值和权重 weighted_avg = 0; weights = zeros(1, num_intervals);
% 计算每个区间中的数据占总量的比例 for i = 1:num_intervals lower = intervals(i); upper = intervals(i+1);
% 计算落在当前区间的数据数量
count = sum(sorted_data >= lower & sorted_data <= upper);
% 计算当前区间的权重
weight = count / numel(sorted_data);
% 更新加权平均值和权重
weighted_avg = weighted_avg + weight * mean(sorted_data(sorted_data >= lower & sorted_data <= upper));
weights(i) = weight;
end
% 输出加权平均值和权重 disp("加权平均值: " + weighted_avg); disp("权重: " + weights);
原文地址: https://www.cveoy.top/t/topic/qb7y 著作权归作者所有。请勿转载和采集!