我有结构列表。在结构中有字段x。我想选择那些通过参数x彼此靠近的结构。换句话说,我想通过x来聚合它们。 我想,应该有一个解决方案。 在此先感谢。从结构列表中选择项目
回答
这不会聚类,它将它们分成相等的Xs – flq 2012-01-11 17:00:14
好吧,他可以按X进行分组,然后迭代IGrouping,合并足够“足够”彼此的集合。 – 2012-01-11 17:03:32
如果我理解正确的,你想要什么,那么你可能需要通过结构的字段X
是的,我可以对它们进行排序,然后两两比较它们之间的差异,但是我建议,可能有一个标准函数或类似的东西 – Kamerer 2012-01-11 17:23:28
排序列表如果你做图式的集群,做最简单的方法是通过建立最初为空的簇列表。然后循环输入,并为每个值查找所有至少有一个元素接近当前值的聚类。所有这些集群都应该与价值合并在一起。如果没有,那么这个值本身就会进入一个簇。
以下是一些简单的整数列表示例代码。
IEnumerable<int> input;
int threshold;
List<List<int>> clusters = new List<List<int>>();
foreach(var current in input)
{
// Search the current list of clusters for ones which contain at least one
// entry such that the difference between it and x is less than the threshold
var matchingClusters =
clusters.Where(
cluster => cluster.Any(
val => Math.Abs(current - val) <= threshold)
).ToList();
// Merge all the clusters that were found, plus x, into a new cluster.
// Replace all the existing clusters with this new one.
IEnumerable<int> newCluster = new List<int>(new[] { current });
foreach (var match in matchingClusters)
{
clusters.Remove(match);
newCluster = newCluster.Concat(match);
}
clusters.Add(newCluster.ToList());
}
- 1. 从偏好列表中选择项目?
- 2. 从列表框中选择项目XAML
- 3. 从列表中选择单个项目
- 4. 从项目列表中自动选择
- 5. 从列表视图中选择项目
- 6. 列表框从usercontrol选择的项目
- 7. 从列表<>选择项目
- 8. 删除选择时选择的项目会从列表框中
- 9. Python如何从包含列表的列表中选择项目
- 10. 从表中选择层次结构
- 11. JSoup从列表中选择选项java
- 12. 从列中选择所有项目
- 13. 从Google表格中的列表中选择随机项目
- 14. 在列表中选择项目匹配
- 15. LINQ选择项目不在列表中
- 16. 在列表框中选择项目
- 17. 列表框中选择所有项目
- 18. 在列表视图中选择项目
- 19. 从长列表中选择多项选择项目的设计思路
- 20. 从GridView列中选择多个列表框项目
- 21. LINQ从列表中选择项目,其中字符串包含列表中的任何搜索项 - >重构
- 22. 从Richfaces表中选择项目的最佳方式?选择列表?
- 23. 从列表中随机选择比列出的项目更多的选项
- 24. wpf - 从嵌套列表视图选择项目也选择父列表视图
- 25. 从Javascript嵌套数组/数据结构选择随机项目
- 26. 从排序列表中选择结果?
- 27. 如何从项目列表中选择滚动视图中的中心项目
- 28. 当从列表中选择一个项目时选择一个单选按钮
- 29. 从mysql中选择项目
- 30. 使用列表从列表中删除使用列表框选择的项目
这会不会是图中的意义,在这里如果{A,B},{B,C}和{C,d}都在附近,那么所有四送聚集在一起,即使A和d是集群不是特别密切?或者,群集中的所有成员是否应该彼此靠近? – 2012-01-11 16:58:13
第一个选项。 – Kamerer 2012-01-11 17:08:58
这不是“聚类”。它被称为“分组”。在SQL中:'GROUP BY'。 – 2012-01-12 09:42:49