# VB Vector Example

← All NMath Code Examples

```Imports System

Imports CenterSpace.NMath.Core
Imports Range = CenterSpace.NMath.Core.Range

Namespace CenterSpace.NMath.Core.Examples.VisualBasic

' A .NET example in Visual Basic showing some of the basic functionality of the vector classes.
Module VectorExample

' The main entry point for the application.
Sub Main()

Console.WriteLine()

Dim v As New DoubleVector("[1 2 3 4 5 6]")

' You can obtain different vector "views" of the data in v.
' For example, vector viewing every other element of v.
Dim everyOther As DoubleVector = v(New Range(0, Position.End, 2))
Console.WriteLine("everyOther = {0}", everyOther.ToString())   ' [1 3 5]
Console.WriteLine()

' Remember that this vector is a different views of the data in
' v. Changing a value in everyOther will change
' the corresponding value in v.
everyOther(1) = 10
Console.WriteLine("Value of v == 10 is {0}", v(2).Equals(10))   ' True
Console.WriteLine()

' You can make sure that your data is not being shared with anyone
' else by invoking the DeepenThisCopy method. This will insure that
' you have your own private copy of the data and that it occupies
' contiguous storage.
v.DeepenThisCopy()
everyOther(1) = 100
Console.WriteLine("Value of v == 100 is {0}", v(2).Equals(100))  ' False
Console.WriteLine()

' The Resize method changes the length of a vector. Values are
' truncated or padded with zeros as appropriate.
' First let's save v's original values.
Dim vOrig As DoubleVector = v.Clone()

' Now resize v.
v.Resize(v.Length + 2)

' v will have its original values in the first v.Length-1 elements.
' The last two elements will be zero.
Dim vOrig1 As DoubleVector = v(New Slice(0, vOrig.Length))
Console.WriteLine("values of v preserved during resize is {0}", vOrig.Equals(vOrig1))
Console.WriteLine()
Console.WriteLine("v resized = {0}", v.ToString())
Console.WriteLine()

' vector dot, or inner, products are available as
' static methods in the NMathFunctions class.
Dim u As New DoubleVector(v.Length, 1, 1)
Dim dp As Double = NMathFunctions.Dot(v, u)
Console.WriteLine("The dot product of {0} with {1} = {2}", v.ToString(), u.ToString(), dp)
Console.WriteLine()

' There are also functions for computing mean and variance of the numbers in a vector.
Dim mean As Double = NMathFunctions.Mean(v)
Dim var As Double = NMathFunctions.Variance(v)
Console.WriteLine("The mean of v is {0}, and the variance is {1}", mean, var)

Console.WriteLine()
Console.WriteLine("Press Enter Key")