?? 模糊聚類m2.bas
字號:
Attribute VB_Name = "modDataTreat"
'模糊聚類分析
'數據預處理方法模塊
Option Explicit
'數據的標準差變換
'X(1 To N,1 To M):原始數據,執行后保存變換后的數據
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(1 To N,1 To M):原始數據,執行后保存變換后的數據
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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -