取平均值当元素在数组“丛”

2视图(30天)
我有一个数组,例如:
r1 =兰德(1000 1)
排序(r1)
这个按升序排序。我想实现的是:我想取平均值时数组内的值丛之间,在一个特定的阈值。试图解释这一个例子:
一个= 1;10;15;16;16.1;16.2;16.3;18)
平均值应该当数组内的数量 最大差异为0.5
这本质上应采取:
a_sub = [16;16.1;16.2;16.3)
意思是(a_sub)
我希望这是可以理解的。非常感谢您的帮助。
4评论

登录置评。

接受的答案

骑自行车的人
骑自行车的人 2020年7月27日
编辑:骑自行车的人 2020年7月27日
假设我的猜测正确的输出是正确的,那么以下应该工作。
%原(排序)的数据
一个= 1;10;15;16;16.1;16.2;16.3;18];
%的差异阈值
d = 0.5;
%确定哪些属于每个值“集群”。这部分有点棘手。
% 1的diff命令将导致价值如果前值超过阈值。
%的累计金额,该指数将进入下一个值。
clusterIndex = cumsum (diff ([(1);)> d) + 1;
%根据指数,平均价值,属于同一集群
= accumarray (clusterIndex, [], @mean);
3评论

登录置评。

更多的答案(0)

类别

找到更多的在调整和重塑矩阵帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!