?? 模糊識別m3.bas
字號:
Attribute VB_Name = "modMethod"
'模糊識別
'貼近度方法模塊
Option Explicit
'格貼近度
'A(1 To M):待定樣本,M為元素數或指標數
'B(1 To M):標準模型,M為元素數或指標數
'C為貼近度
Public Sub MM1(A() As Double, B() As Double, C As Double)
Dim M As Integer, I As Integer
Dim dM1 As Double, dM2 As Double
Dim dC1 As Double, dC2 As Double
M = UBound(A, 1) 'M:元素數或指標數
dM1 = 0: dM2 = 1
For I = 1 To M
If A(I) < B(I) Then dC1 = A(I) Else dC1 = B(I)
If A(I) > B(I) Then dC2 = A(I) Else dC2 = B(I)
If dC1 > dM1 Then dM1 = dC1
If dC2 < dM2 Then dM2 = dC2
Next I
C = (dM1 + (1 - dM2)) / 2
End Sub
'海明貼近度
'A(1 To M):待定樣本,M為元素數或指標數
'B(1 To M):標準模型,M為元素數或指標數
'C為貼近度
Public Sub MM2(A() As Double, B() As Double, C As Double)
Dim M As Integer, I As Integer
Dim D As Double
M = UBound(A, 1) 'M:元素數或指標數
D = 0
For I = 1 To M
D = D + Abs(A(I) - B(I))
Next I
C = 1 - D / M
End Sub
'歐氏貼近度
'A(1 To M):待定樣本,M為元素數或指標數
'B(1 To M):標準模型,M為元素數或指標數
'C為貼近度
Public Sub MM3(A() As Double, B() As Double, C As Double)
Dim M As Integer, I As Integer
Dim D As Double
M = UBound(A, 1) 'M:元素數或指標數
D = 0
For I = 1 To M
D = D + (A(I) - B(I)) ^ 2
Next I
C = 1 - Sqr(D / M)
End Sub
'最大最小法
'A(1 To M):待定樣本,M為元素數或指標數
'B(1 To M):標準模型,M為元素數或指標數
'C為貼近度
Public Sub MM4(A() As Double, B() As Double, C As Double)
Dim M As Integer, I As Integer
Dim dMin As Double, dMax As Double
Dim dC1 As Double, dC2 As Double
M = UBound(A, 1) 'M:元素數或指標數
For I = 1 To M
If A(I) < B(I) Then dC1 = A(I) Else dC1 = B(I)
If A(I) > B(I) Then dC2 = A(I) Else dC2 = B(I)
dMin = dMin + dC1
dMax = dMax + dC2
Next I
C = dMin / dMax
End Sub
'算術平均值最小法
'A(1 To M):待定樣本,M為元素數或指標數
'B(1 To M):標準模型,M為元素數或指標數
'C為貼近度
Public Sub MM5(A() As Double, B() As Double, C As Double)
Dim M As Integer, I As Integer
Dim dMin As Double
Dim dC1 As Double, dC2 As Double, dC As Double
M = UBound(A, 1) 'M:元素數或指標數
For I = 1 To M
If A(I) < B(I) Then dC1 = A(I) Else dC1 = B(I)
dMin = dMin + dC1
dC2 = A(I) + B(I)
dC = dC + dC2
Next I
C = 2 * dMin / dC
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -