This class has some nice statistical functions





3.00/5 (3 votes)
It has some Statistical function such as mean , variance,...
Introduction
The class which is attached helps you to use statistical functions in your projects
It include these functinos :
1-Max
2-Min
3-Median
4-Mode
5-Mean
6-Variance
7-Covariance
8-VarCovarMatrix
9-Correlation
Using the code
Using the class is too easy.Just try it. then enjoy it.
Something Nice
Have you ever tried to write a function that could calculate the Mode ?
It was really good experince i had writting this class
if you look at the function ( Mode ) you will find out, that it could count how many times an elemnt in an matrix of any type! with any dimension ( just less than 3) was repeated!
and finally it find the most repeated elements and return them as the Mode.
this is the code :
Public Shared Function Mode(ByVal InArray As Array) As Object() Dim Dimentions() As Integer = size(InArray) Dim i As Integer Dim j As Integer Dim k As Integer Dim NewInArray(InArray.Length - 1) As Object Select Case Dimentions.Length Case 1 Array.Copy(InArray, NewInArray, InArray.Length) Case 2 For i = 0 To Dimentions(0) - 1 For j = 0 To Dimentions(1) - 1 NewInArray(i * Dimentions(1) + j) = InArray(i, j) Next Next Case 3 For i = 0 To Dimentions(0) - 1 For j = 0 To Dimentions(1) - 1 For k = 0 To Dimentions(2) - 1 NewInArray(i * Dimentions(1) * Dimentions(2) + j * Dimentions(2) + k) = InArray(i, j, k) Next Next Next Case Else MsgBox("Matrix dimention must be less than 3", MsgBoxStyle.Critical, "Statistic") Return Nothing End Select Array.Sort(NewInArray) Dim Temp As Integer Dim Counter As Integer = 0 Dim ModeArray(0) As ArrayValueRepetation i = 0 While i < NewInArray.Length Temp = 0 ReDim Preserve ModeArray(Counter) For j = i To NewInArray.Length - 1 If NewInArray(i) = NewInArray(j) Then Temp += 1 ModeArray(Counter).RepeatTimes = Temp ModeArray(Counter).Value = NewInArray(i) ElseIf Temp = 1 Then ModeArray(Counter).RepeatTimes = Temp ModeArray(Counter).Value = NewInArray(i) Exit For Else Exit For End If Next Counter += 1 i = j End While Dim RepeatTimes(Counter - 1) As Integer For i = 0 To Counter - 1 RepeatTimes(i) = ModeArray(i).RepeatTimes Next Dim MaxRepeat As UInteger = Max(RepeatTimes) Dim OutVector(0) As Object Dim NumberOfModes As Integer = 0 For i = 0 To Counter - 1 If ModeArray(i).RepeatTimes = MaxRepeat Then ReDim Preserve OutVector(NumberOfModes) 'OutVector.SetValue(ModeArray(i).Value, NumberOfModes) OutVector(NumberOfModes) = ModeArray(i).Value NumberOfModes += 1 End If Next Return OutVector End Function