Operaciones Con Matrices En Visual Basic
Sólo se pueden sumar matrices del mismo orden. La matriz suma es otra matriz del mismo orden que se obtiene sumando los elementos de las dos matrices situados en la misma posición. Por ejemplo:
[pic]
Aunque, como veremos más adelante, el objeto Matrix realiza todas las operaciones que necesitemos por nosotros, vamos a escribir, a título meramente ilustrativo, una función que halle la suma de dos matrices. Le entregaremos un par de arrays de tipo Decimal y de la misma dimensión que harán de matrices, y devolverá otro array cuyos elementos serán la matriz suma:
Public Function Suma(ByVal Matriz1(,) As Decimal, ByVal Matriz2(,) As Decimal) As Decimal(,) 'Comprobamos que las …ver más…
amos hallando R(1,0) será el primer índice de todos los elementos de A, y el segundo índice R(1,0) será el segundo índice de todos los elementos B: A(1, ) * B( ,0)
A(1, ) * B( ,0)
A(1, ) * B( ,0) Añadimos los índices que faltan empezando por cero (o por 1, si hubiésemos definido los índices en base 1) e incrementándolos en una unidad de arriba a abajo: A(1,0) * B(0 ,0)
A(1,1) * B(1 ,0)
A(1,2) * B(2 ,0) Localizamos el valor de cada elemento en las matrices A y B, efectuamos las multiplicaciones y sumamos los resultados: A(1,0) * B(0 ,0) = 3 * 1 = 3
A(1,1) * B(1 ,0) = 2 * 3 = 6
A(1,2) * B(2 ,0) = 1 * 2 = 2 R(1,0) = 3 + 6 + 2 = 11 Aplicando este sencillo truco a cada uno de los elementos de R obtenemos la matriz producto R = A x B: [pic] He aquí la función: Public Function Producto(ByVal A(,) As Decimal, ByVal B(,) As Decimal) As Decimal(,) 'Comprobamos que las matrices cumplen los requisitos If A.GetUpperBound(1) B.GetUpperBound(0) Then Exit Function End If Dim i, j, k As Short 'Creamos la matriz producto Dim R(A.GetUpperBound(0), B.GetUpperBound(1)) As Decimal 'Este array de dos columnas 'es meramente operativo 'equivale a las dos columnas 'que hemos creado en el ejemplo: 'A(1,0) * B(0 ,0) 'A(1,1) * B(1