模糊识别m2.bas

来自「用VB编写的基于模糊数学原理的模糊识别程序」· BAS 代码 · 共 47 行

BAS
47
字号
Attribute VB_Name = "modDataTreat"
'模糊识别
'数据预处理方法模块
Option Explicit
'数据的标准差变换
'X:原始数据,执行后保存变换后的数据
Public Sub Data_T1(X() As Double)
    Dim M As Integer, N As Integer, I As Integer, J As Integer
    Dim Ave As Double, S As Double
    N = UBound(X, 1): M = UBound(X, 2)          'N:样品数;M:变量数
    For J = 1 To M
        Ave = 0
        For I = 1 To N
            Ave = Ave + X(I, J)
        Next I
        Ave = Ave / N                           'Ave是平均值
        S = 0
        For I = 1 To N
            S = S + (X(I, J) - Ave) ^ 2
        Next I
        S = Sqr(S / N)                          'S是标准差
        For I = 1 To N
            X(I, J) = (X(I, J) - Ave) / S       '标准差标准化变换
        Next I
    Next J
End Sub

'数据的极差变换
'X:原始数据,执行后保存变换后的数据
Public Sub Data_T2(X() As Double)
    Dim M As Integer, N As Integer, I As Integer, J As Integer
    Dim xMax As Double, xMin As Double, D As Double
    N = UBound(X, 1): M = UBound(X, 2)          'N:样品数;M:变量数
    For J = 1 To M
        xMax = -100000000: xMin = 100000000
        For I = 1 To N
            If X(I, J) > xMax Then xMax = X(I, J)
            If X(I, J) < xMin Then xMin = X(I, J)
        Next I
        D = xMax - xMin                         'D是极差
        For I = 1 To N
            X(I, J) = (X(I, J) - xMin) / D      '极差标准化变换
        Next I
    Next J
End Sub

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?