请高手帮忙看一下这个程序。Private Sub Command1_Click()
Dim a() As Double
Dim i As Integer
Dim j As Integer
Dim b(1 To 2, 1 To 2) As Double
b(1, 1) = 1: b(1, 2) = 3
b(2, 1) = 2: b(2, 2) = 4
a = guiyihua(b)
For i = 1 To 2
For j = 1 To 2
Print a(i, j)
nextj
NextEnd Sub
'归一化
Public Function guiyihua(X() As Double) As Double
Dim i As Integer
Dim j As Integer
Dim s1 As Integer
Dim s2 As Integer
s1 = UBound(X, 1)
s2 = UBound(X, 2)
ReDim z(1 To s1, 1 To s2)
For i = 1 To s1
For j = 1 To s2
X(i, j) = X(i, j) / X(i, s2)
Next j
Next i guiyihua = X
End Function
Dim a() As Double
Dim i As Integer
Dim j As Integer
Dim b(1 To 2, 1 To 2) As Double
b(1, 1) = 1: b(1, 2) = 3
b(2, 1) = 2: b(2, 2) = 4
a = guiyihua(b)
For i = 1 To 2
For j = 1 To 2
Print a(i, j)
nextj
NextEnd Sub
'归一化
Public Function guiyihua(X() As Double) As Double
Dim i As Integer
Dim j As Integer
Dim s1 As Integer
Dim s2 As Integer
s1 = UBound(X, 1)
s2 = UBound(X, 2)
ReDim z(1 To s1, 1 To s2)
For i = 1 To s1
For j = 1 To s2
X(i, j) = X(i, j) / X(i, s2)
Next j
Next i guiyihua = X
End Function
因此a = guiyihua(b)是错的Private Sub Command1_Click()
Dim a() As Double
Dim i As Integer
Dim j As Integer
Dim b(1 To 2, 1 To 2) As Double
b(1, 1) = 1: b(1, 2) = 3
b(2, 1) = 2: b(2, 2) = 4
ReDim a(1 To 2, 1 To 2)
'a = guiyihua(b)
For i = 1 To 2
For j = 1 To 2
a(i, j) = b(i, j)
Print a(i, j)
Next j
NextEnd Sub
Private Sub Command1_Click()
Dim a As Variant
Dim i As Integer
Dim j As Integer
Dim b(1 To 2, 1 To 2) As Double
b(1, 1) = 1: b(1, 2) = 3
b(2, 1) = 2: b(2, 2) = 4
a = guiyihua(b)
For i = 1 To 2
For j = 1 To 2
Print a(i, j)
Next j
NextEnd Sub
'归一化
Public Function guiyihua(X() As Double) As Variant
Dim i As Integer
Dim j As Integer
Dim s1 As Integer
Dim s2 As Integer
s1 = UBound(X, 1)
s2 = UBound(X, 2)
ReDim z(1 To s1, 1 To s2)
For i = 1 To s1
For j = 1 To s2
X(i, j) = X(i, j) / X(i, s2)
Next j
Next i guiyihua = X
End Function
Dim i As Integer
Dim j As Integer
Dim s1 As Integer
Dim s2 As Integer
s1 = UBound(X, 1)
s2 = UBound(X, 2)
ReDim z(1 To s1, 1 To s2)
For i = 1 To s1
For j = 1 To s2
X(i, j) = X(i, j) / X(i, s2)
Next j
Next i
guiyihua = X
End Function
函数guiyihua返回的是double ,你又把它赋给数组.
具体的原理等高手来解.