函数格式:Math_Matrix_Scatter(X,m,S)
X:目标矩阵
m:X矩阵的行数
S:获得的散点矩阵
函数运行原理:Scatter Matrix
附加说明:
Math_Matrix_Mul:矩阵乘法
源代码:
Public Function Math_Matrix_Scatter(ByVal X(,) As Double, ByVal m As Integer, ByRef S(,) As Double) As Integer
'返回X矩阵的散点矩阵(Scatter Matrix)S
Dim n As Integer = X.Length \ m - 1
m -= 1
Dim i As Integer
Dim j As Integer
Dim i1 As Integer
Dim j1 As Integer
Dim temp(0, 0) As Double
Dim tempx(m, 0) As Double
Dim tempxt(0, m) As Double
Dim x1 As Double
For i = 0 To m
x1 = 0
For j = 0 To n
x1 += X(i, j)
Next
x1 /= (n + 1)
For j = 0 To n
X(i, j) -= x1
Next
Next
ReDim S(m, m)
For j = 0 To n
For i = 0 To m
tempx(i, 0) = X(i, j)
tempxt(0, i) = X(i, j)
Next
Math_Matrix_Mul(tempx, tempxt, 1, temp)
For i1 = 0 To m
For j1 = 0 To m
S(i1, j1) += temp(i1, j1)
Next
Next
Next
Return m + 1
End Function