当前位置:编程学习 > VB >>

如何将数据分类,急!

有三个数组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)中有几个不同的值就新建几个新数组 --------------------编程问答--------------------
引用 2 楼 xiongjian0123 的回复:
说简单点就是,将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 算法是否是你要的 --------------------编程问答--------------------
引用 5 楼 qqchildren 的回复:
我是这样认为的,原始数据分成三组,n(i),m(i),p(i)就是每组里的第一个位置,第二个位置,第三个位置的数,是这样?a(i)表示每组数,且有三个值,这样的数组应该不可以吧,我觉得是定义一个二维数组,     a(i,j),a(1,1)是第一组第一个,a(1,2)第一组第二个,a(1,3)第三个,以此类推吧。

定义一个二维数组并不好实现你要的结果。

参考以下程序:

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 ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,