想弄一个方差的表达式,自己写的如下是对一个二维数组中的第二维数据计算方差
Public Function aveSqu(x As Integer, n() As Integer) As Single
Dim i As Integer, t As Integer
Dim ave As Singlet = 0
For i = LBound(n, 2) To UBound(n, 2)
t = t + n(x, i)
Next i
If i > 0 Then
aveSqu = (n(x, i) - t / i) * (n(x, i) - t / i) / i
End If
End Function运行时总是报越界的错.....不知道为什么...还请各位多多指点
Public Function aveSqu(x As Integer, n() As Integer) As Single
Dim i As Integer, t As Integer
Dim ave As Singlet = 0
For i = LBound(n, 2) To UBound(n, 2)
t = t + n(x, i)
Next i
If i > 0 Then
aveSqu = (n(x, i) - t / i) * (n(x, i) - t / i) / i
End If
End Function运行时总是报越界的错.....不知道为什么...还请各位多多指点
Public JC(1 To 100, 1 To 100) As Double '均差
public Datanumber as double
public Sourcenumber(1 to 100,1 to 2) as double
Public Sub GetJC() '计算方法分析一书的图表
Dim i As Integer
Dim j As Integer
For i = 1 To Datanumber
JC(i, 1) = Sourcenumber(i, 2)
Next i
For j = 2 To Datanumber '列
For i = j To Datanumber
if (Sourcenumber(i - 1, 1) - Sourcenumber(i, 1))=0 then goto 10:
JC(i, j) = (JC(i - 1, j - 1) - JC(i, j - 1)) / (Sourcenumber(i - 1, 1) - Sourcenumber(i, 1))
Next i
Next j
Exit Sub
10:
'除数为0
MsgBox " 请检查你输入的数据。" & vbCrLf & "可能是有X的值相同。", vbOKOnly, "提示"
End Sub
i此时已经越界了。
你的x得值可不可能越界,这段程序中看不出x 是否越界
Public Function aveSqu(x As Integer, n() As Integer) As Single
Dim i As Integer, t As Integer
Dim ave As Singlet = 0
N=8'假定N=8
redim preserve avesqu(n,2) as single'模块中重定义,只是示范,按你自己的写才行
For i = LBound(n, 2) To UBound(n, 2)
t = t + n(x, i)
Next i
If i > 0 Then
aveSqu = (n(x, i) - t / i) * (n(x, i) - t / i) / i
End If
End Function
或者加入一句:n=x