如何将数据分类,急!
有三个数组n(i),m(i),p(i)值 1 2 3 如何根据n(i)中不同的值的个数(本例中为3)建立另外一个数组如:a(个数)存放1,2,3
1 3 4 可知每个a(i)中有三个值,这三个值也要随a(i)的不同重新建立数组存放,该如何编
1 5 6 程?各位大虾,谢谢 !
2 3 4
2 4 5
2 6 5
3 4 5
3 5 6
3 7 8 --------------------编程问答-------------------- 看来我还得去学习一下语文……
经常看到一些说得云里雾里的贴子……
--------------------编程问答-------------------- 说简单点就是,将n(i)中相同的值放在一块,付给一个新数组,n(i)中有几个不同的值就新建几个新数组 --------------------编程问答--------------------
那M和P数组呢?
--------------------编程问答-------------------- ....不太明白,既然数值都相同,干吗还另建数组?新数组中都是同一个值有何意义? --------------------编程问答-------------------- 我是这样认为的,原始数据分成三组,n(i),m(i),p(i)就是每组里的第一个位置,第二个位置,第三个位置的数,是这样?a(i)表示每组数,且有三个值,这样的数组应该不可以吧,我觉得是定义一个二维数组, a(i,j),a(1,1)是第一组第一个,a(1,2)第一组第二个,a(1,3)第三个,以此类推吧。 --------------------编程问答-------------------- 没看明白
百度下 K mean 算法是否是你要的 --------------------编程问答--------------------
定义一个二维数组并不好实现你要的结果。
参考以下程序:
Private Sub Command1_Click()
Dim a(1 To 3), a1, n1, s
Dim n, m, p, f As Boolean
Dim i As Integer, j As Integer
n = Array(1, 1, 2, 2, 2, 3, 3, 3)
m = Array(3, 5, 3, 4, 6, 4, 5, 7)
p = Array(4, 6, 4, 5, 5, 5, 6, 8)
n1 = n
GoSub prg1
a(1) = a1
n1 = m
GoSub prg1
a(2) = a1
n1 = p
GoSub prg1
a(3) = a1
For i = 1 To 3 '验证数据,观察立即窗口
For j = 0 To UBound(a(i))
Debug.Print a(i)(j); " ";
Next
Debug.Print
Next
Exit Sub
prg1:
For i = 0 To UBound(n1)
For j = i + 1 To UBound(n1)
If n1(i) = n1(j) Then
f = True: Exit For
End If
Next
If Not f Then
s = s & n1(i) & ","
End If
f = False
Next
s = Left(s, Len(s) - 1)
a1 = Split(s, ",")
s = ""
Return
End Sub
补充:VB , 基础类