【发布时间】:2014-09-09 15:46:32
【问题描述】:
我有一个 1 和 0 的矩阵。我想做的是将具有 1 的单元格分组,并计算矩阵中存在的簇的数量以及这些簇的大小。
如果 n 个(在这种情况下,至少有 4 个值为 1 的像元彼此靠近)的 1 彼此靠近(彼此立即向上、向下、向左或向右,则将它们视为单个簇并输出簇的数量及其大小。
例如矩阵如下所示:
> m
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 0 0 0 0 0 0 0 0 0
[2,] 1 1 1 0 0 0 0 0 0 0
[3,] 0 0 1 0 0 0 0 0 0 0
[4,] 0 0 1 0 0 0 0 0 0 0
[5,] 0 0 1 0 0 0 0 1 1 0
[6,] 0 0 0 0 0 0 0 0 1 1
这个矩阵的簇数是 2 个簇。一组 7 个 1 和另一组 4 个 1。我在试图让它工作时遇到了很多麻烦,似乎无法弄清楚。
输出可以像这样简单:
> output
cluster size
1 7
2 4
【问题讨论】: