📄 basicvectors.vb
字号:
' The Vector class resides in the Extreme.Mathematics.LinearAlgebra namespace.
Imports Extreme.Mathematics.LinearAlgebra
Namespace Extreme.Mathematics.QuickStart.VB
' Illustrates the use of the Vector class in the
' Extreme.Mathematics.LinearAlgebra namespace of the Extreme Optimization
' Mathematics Library for .NET.
Module BasicVectors
Sub Main()
'
' Constructing vectors
'
' Option #1: specify the number of elements. All
' components are set to 0.
Dim v1 As Vector = New GeneralVector(5)
' Option #2: specify the components:
Dim v2 As Vector = New GeneralVector(1, 2, 3, 4, 5)
' Option #3: specify the components as a Double array.
' By default, the components are copied to a storage
' area internal to the Vector.
Dim components As Double() = _
New Double() {1, 2, 3, 4, 5}
Dim v3 As Vector = New GeneralVector(components)
' Option #4: same as above, but specify whether
' to copy the components, or use the array as
' internal storage.
Dim v4 As Vector = New GeneralVector(components, False)
' Changing a value in the original vector changes
' the resulting vector.
Console.WriteLine("v4 = {0:F4}", v4)
components(3) = 1
Console.WriteLine("v4 = {0:F4}", v4)
' Option #5: same as #3, but specify the length of
' the Vector. The remaining elements in the component
' array will be ignored.
Dim v5 As Vector = New GeneralVector(4, components)
' Option #6: same as #5, but specify whether
' to copy the components, or use the array as
' internal storage.
Dim v6 As Vector = New GeneralVector(4, components, False)
'
' Vector properties
'
' The Length property gives the number of components
' of a Vector:
Console.WriteLine("v1.Length = {0}", v1.Length)
' The Components property returns a Double array
' that contains the components of the vector.
' This is always a copy:
components = v2.GetComponents()
Console.WriteLine("Effect of shared storage:")
Console.WriteLine("v2(2) = {0}", v2(2))
components(2) = 1
Console.WriteLine("v2(2) = {0}", v2(2))
'
' Accessing vector elements
'
' The Vector class defines an indexer property that
' takes a zero-based index.
Console.WriteLine("Assigning with private storage:")
Console.WriteLine("v1(2) = {0}", v1(2))
' You can assign to this property:
v1(2) = 7
Console.WriteLine("v1(2) = {0}", v1(2))
' The vectors v4 and v6 had the copy parameter in the
' constructor set to false. As a result, they share
' their component storage. Changing one vector also
' changes the other:
Console.WriteLine("Assigning with shared storage:")
Console.WriteLine("v4(1) = {0}", v4(1))
v6(1) = 7
Console.WriteLine("v4(1) = {0}", v4(1))
' The SetValue method sets all components of a vector
' to the same value:
v1.SetValue(1)
Console.WriteLine("v1 = {0:F4}", v1)
' The Zero method sets all components to 0:
v1.Zero()
Console.WriteLine("v1 = {0:F4}", v1)
'
' Copying and cloning vectors
'
' A shallow copy of a vector constructs a vector
' that shares the component storage with the original.
' This is done using the ShallowCopy method:
Console.WriteLine("Shallow copy vs. clone:")
Dim v7 As Vector = v2.ShallowCopy()
' The clone method creates a full copy.
Dim v8 As Vector = v2.Clone()
' When we change v2, v7 changes, but v8 is left
' unchanged.
Console.WriteLine("v2(1) = {0}", v2(1))
v2(1) = -2
Console.WriteLine("v7(1) = {0}", v7(1))
Console.WriteLine("v8(1) = {0}", v8(1))
' We can give a vector its own component storage
' by calling the CloneData method:
Console.WriteLine("CloneData:")
v7.CloneData()
' Now, changing the original v2 no longer changes v7:
v2(1) = 4
Console.WriteLine("v7(1) = {0}", v7(1))
' The CopyTo method copies the components of a Vector
' to a variety of destinations. It may be a Vector:
Console.WriteLine("CopyTo:")
v6.CopyTo(v1)
Console.WriteLine("v6 = {0:F4}", v6)
Console.WriteLine("v1 = {0:F4}", v1)
' You can specify an index where to start copying
' in the destination vector:
v6.CopyTo(v1, 1)
Console.WriteLine("v1 = {0:F4}", v1)
' Or you can copy to a Double array:
v6.CopyTo(components)
Console.Write("Press Enter key to exit...")
Console.ReadLine()
End Sub
End Module
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -