2010-02-23 14 views
7

¿Existe alguna manera incorporada de multiplicar cada miembro de una matriz por algún número en el lugar?Aritmética de Array de VB.NET

Ejemplo:

Dim volts() as Double = {1.243, 0.534, 5.343, 2.223, 4.334} 
Dim millivolts (4) as Double = volts.MultiplyEachBy(1000) 'something like this 
+0

¿qué versión de .net framework estás usando? – Andrew

Respuesta

9

Usted puede utilizar el método Array.ConvertAll.

Array.ConvertAll(volts, Function(x) x * 1000) 

EDITAR

Hay un pequeño error en el código de ejemplo que necesita ser corregido para la de arriba para compilar. Retire el tamaño explícita (4) del tipo de variable

Dim volts() As Double = {1.243, 0.534, 5.343, 2.223, 4.334} 
+0

@Steven, hay un ligero error en la forma en que declara los voltios variables. Debes eliminar el tamaño explícito 4 – JaredPar

0

no creo que hay una construida en forma de hacerlo, pero lo mejor que se me ocurrió hacer sería simplemente crear su propio método . Algo así como

Public Function convertMilliamps(ByVal voltArray() As Double) 
    For Each item AS Double In voltArray 
     item = item * 1000 
    Next 

Return voltArray() 
End Function 

a continuación, sólo hacer voltios = convertMilliamps (voltios)

0

Su función no está disponible para cada elemento, ya que un elemento es una copia del valor, no el elemento real de la matriz. Esto debería funcionar:

Public Function MultiplyArrayByScalar(ByRef arry As Double(), ByVal scaler As Double) As Double() 

    Dim newArry As Double() 
    Dim size As Integer = arry.GetLength(0) 
    ReDim newArry(size - 1) 
    Dim i As Integer 
    For i = 0 To size - 1 
     newArry(i) = arry(i) * scaler 
    Next 

    Return newArry 
End Function