⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form5.frm

📁 是关于MATALB 神经网络与VB的混合编程,希望对大家有所帮助
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form5 
   Caption         =   "泛化"
   ClientHeight    =   5430
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   5490
   ControlBox      =   0   'False
   BeginProperty Font 
      Name            =   "宋体"
      Size            =   9.75
      Charset         =   134
      Weight          =   400
      Underline       =   0   'False
      Italic          =   0   'False
      Strikethrough   =   0   'False
   EndProperty
   LinkTopic       =   "Form5"
   ScaleHeight     =   5430
   ScaleWidth      =   5490
   StartUpPosition =   2  'CenterScreen
   Begin VB.CommandButton Command1 
      Caption         =   "确定"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   1080
      TabIndex        =   6
      Top             =   4560
      Width           =   975
   End
   Begin VB.CommandButton Command2 
      Caption         =   "返回"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   3360
      TabIndex        =   5
      Top             =   4560
      Width           =   855
   End
   Begin VB.Frame Frame1 
      Caption         =   "请填写输入和期望输出值"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   3735
      Left            =   600
      TabIndex        =   0
      Top             =   600
      Width           =   4095
      Begin VB.TextBox txtErr 
         BackColor       =   &H80000004&
         Enabled         =   0   'False
         Height          =   495
         Index           =   0
         Left            =   1560
         TabIndex        =   10
         Top             =   2640
         Width           =   1815
      End
      Begin VB.TextBox TxtOther 
         BackColor       =   &H80000004&
         Enabled         =   0   'False
         Height          =   495
         Index           =   0
         Left            =   1560
         TabIndex        =   8
         Top             =   1800
         Width           =   1815
      End
      Begin VB.TextBox TxtOutput 
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   9
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   495
         Index           =   0
         Left            =   1560
         TabIndex        =   2
         Top             =   1080
         Width           =   1815
      End
      Begin VB.TextBox txtInput 
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   9
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   495
         Index           =   0
         Left            =   1560
         TabIndex        =   1
         Top             =   360
         Width           =   1815
      End
      Begin VB.Label Label4 
         Caption         =   "误差1(%):"
         Height          =   375
         Index           =   0
         Left            =   240
         TabIndex        =   9
         Top             =   2760
         Width           =   1455
      End
      Begin VB.Label Label3 
         Caption         =   "实际输出值1:"
         Height          =   375
         Index           =   0
         Left            =   240
         TabIndex        =   7
         Top             =   1920
         Width           =   1335
      End
      Begin VB.Label Label2 
         Caption         =   "期望输出值1:"
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   9.75
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   375
         Index           =   0
         Left            =   240
         TabIndex        =   4
         Top             =   1200
         Width           =   1215
      End
      Begin VB.Label Label1 
         Caption         =   "输入值1:"
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   9.75
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Index           =   0
         Left            =   240
         TabIndex        =   3
         Top             =   480
         Width           =   855
      End
   End
End
Attribute VB_Name = "Form5"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()

    Dim i As Integer, j As Integer
    For i = 0 To LayerNodes(1) - 1
        If TxtInput(i).Text = "" Then
            MsgBox "请输入第" & LTrim(Str(i + 1)) & "个输入值", vbExclamation, "!!!"
            Exit Sub
        End If
    Next i
    For i = 0 To LayerNodes(LayerNum) - 1
        If TxtOutput(i).Text = "" Then
            MsgBox "请输入第" & LTrim(Str(i + 1)) & "个输出值", vbExclamation, "!!!"
            Exit Sub
        End If
    Next i
    If TrainFlag = False Then
        MsgBox "请先将样本进行训练!", vbExclamation, "!!!"
        Exit Sub
    End If
    For i = 0 To LayerNodes(1) - 1
        If Val(TxtInput(i)) > InMax(i + 1) Or Val(TxtInput(i)) < InMin(i + 1) Then
            MsgBox "第" & LTrim(Str(i + 1)) & "输入值应在" & LTrim(Str(InMin(i + 1))) & "和" & LTrim(Str(InMax(i + 1))) & "之间", vbExclamation, "!!!"
            Exit Sub
        End If
    Next i
    For i = 0 To LayerNodes(LayerNum) - 1
        If Val(TxtOutput(i)) > OutMax(i + 1) Or Val(TxtOutput(i)) < OutMin(i + 1) Then
            MsgBox "第" & LTrim(Str(i + 1)) & "个期望输出有误!", vbExclamation, "!!!"
            Exit Sub
        End If
    Next i
    For i = 1 To LayerNodes(1)
        Layers(1).cNerve(i).u = (Val(TxtInput(i - 1).Text) - InMin(i)) / (InMax(i) - InMin(i))
        Layers(1).cNerve(i).v = Layers(1).cNerve(i).u
    Next i
    For i = 2 To LayerNum
        For j = 1 To LayerNodes(i)
            Layers(i).cNerve(j).u = 0
            For k = 1 To LayerNodes(i - 1)
                Layers(i).cNerve(j).u = Layers(i).cNerve(j).u _
                    + Layers(i - 1).cNerve(k).v _
                    * WValue(i - 1).Value(k, j)
            Next k
            Layers(i).cNerve(j).v = Layers(i).cNerve(j).f
        Next j
    Next i
    For i = 1 To LayerNodes(LayerNum)
        TxtOther(i - 1).Text = Layers(LayerNum).cNerve(i).v * (OutMax(i) - OutMin(i)) + OutMin(i)
        txtErr(i - 1).Text = (Val(TxtOther(i - 1).Text) - Val(TxtOutput(i - 1))) / Val(TxtOutput(i - 1)) * 100
    Next i
    
End Sub

Private Sub Command2_Click()

    Unload Me
    Form1.Show
    
End Sub

Private Sub Form_Activate()

    Dim i As Integer
    For i = 1 To LayerNodes(1) - 1
        Load TxtInput(i)
        Load Label1(i)
        TxtInput(i).Top = TxtInput(i - 1).Top + TxtInput(i - 1).Height + 150
        TxtInput(i).Left = TxtInput(i - 1).Left
        TxtInput(i).Visible = True
        Label1(i).Top = TxtInput(i).Top + 120
        Label1(i).Left = Label1(i - 1).Left
        Label1(i).Visible = True
        Label1(i).Caption = "输入值" & Str(i + 1) & ":"
    Next i
    TxtOutput(0).Top = TxtInput(LayerNodes(1) - 1).Top + TxtInput(LayerNodes(1) - 1).Height + 150
    TxtOutput(0).Left = TxtInput(LayerNodes(1) - 1).Left
    Label2(0).Top = TxtOutput(0).Top + 120
    Label2(0).Left = Label1(LayerNodes(1) - 1).Left
    TxtOther(0).Top = TxtOutput(0).Top + TxtOutput(0).Height + 150
    TxtOther(0).Left = TxtOutput(0).Left
    Label3(0).Top = TxtOther(0).Top + 120
    Label3(0).Left = Label2(0).Left
    txtErr(0).Top = TxtOther(0).Top + TxtOther(0).Height + 150
    txtErr(0).Left = TxtOther(0).Left
    Label4(0).Top = txtErr(0).Top + 120
    Label4(0).Left = Label3(0).Left
    For i = 1 To LayerNodes(LayerNum) - 1
        Load TxtOutput(i)
        Load Label2(i)
        Load TxtOther(i)
        Load Label3(i)
        Load txtErr(i)
        Load Label4(i)
        TxtOutput(i).Top = txtErr(i - 1).Top + txtErr(i - 1).Height + 150
        TxtOutput(i).Left = txtErr(i - 1).Left
        TxtOutput(i).Visible = True
        TxtOther(i).Top = TxtOutput(i).Top + TxtOutput(i).Height + 150
        TxtOther(i).Left = TxtOutput(i).Left
        TxtOther(i).Visible = True
        txtErr(i).Top = TxtOther(i).Top + TxtOther(i).Height + 150
        txtErr(i).Left = TxtOther(i).Left
        txtErr(i).Visible = True
        Label2(i).Top = TxtOutput(i).Top + 120
        Label2(i).Left = Label1(i - 1).Left
        Label2(i).Caption = "期望输出值" & Str(i + 1) & ":"
        Label2(i).Visible = True
        Label3(i).Top = TxtOther(i).Top + 120
        Label3(i).Left = Label2(i - 1).Left
        Label3(i).Caption = "实际输出值" & Str(i + 1) & ":"
        Label3(i).Visible = True
        Label4(i).Top = txtErr(i).Top + 120
        Label4(i).Left = Label3(i - 1).Left
        Label4(i).Caption = "误差" & Str(i + 1) & "(%):"
        Label4(i).Visible = True
    Next i
    Frame1.Height = txtErr(LayerNodes(LayerNum) - 1).Top _
        + txtErr(LayerNodes(LayerNum) - 1).Height + 200
    Command1.Left = Frame1.Left + 100
    Command1.Top = Frame1.Top + Frame1.Height + 300
    Command2.Left = Frame1.Left + Frame1.Width - 100 - Command2.Width
    Command2.Top = Command1.Top
    Form5.Height = Command2.Top + Command2.Height + 550
    
End Sub

Private Sub TxtInput_KeyPress(Index As Integer, KeyAscii As Integer)

    Dim i As Integer, n As Integer
    Dim TrainFX
    Set TrainFX = New FunctionDLL.TrainF
    n = TrainFX.GetNum(LayerNodes(1))
    If Index = LayerNodes(1) - 1 And KeyAscii = 13 Then
        For i = 0 To LayerNodes(LayerNum) - 1
            If TFunctionNum(i + 1) <> -1 Then
                Select Case LayerNodes(1)
                    Case 1
                        TxtOutput(i) = TrainFX.dbOne(TFunctionNum(i + 1), Val(TxtInput(0)))
                    Case 2
                        TxtOutput(i) = TrainFX.dbTwo(TFunctionNum(i + 1), Val(TxtInput(0)), Val(TxtInput(1)))
                    Case 3
                        TxtOutput(i) = TrainFX.dbThree(TFunctionNum(i + 1), Val(TxtInput(0)), Val(TxtInput(1)), Val(TxtInput(2)))
                    Case 4
                        TxtOutput(i) = TrainFX.dbFour(TFunctionNum(i + 1), Val(TxtInput(0)), Val(TxtInput(1)), Val(TxtInput(2)), Val(TxtInput(3)))
                End Select
            End If
        Next i
    End If

End Sub

⌨️ 快捷键说明

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