Problema al multiplicar dos marices

Disculpa mi molestia y antes que nada agradezco tu colaboración para con los usuarios, mi consulta es la siguiente:
Estoy realizando una aplicación que sume, reste y multiplique matrices.
Cuando multiplico matrices de igual dimensiones, es decir 2 x 2 y 2 x 2 anda bien pero si quiero multiplicar una matriz de 2 x 3 por una de 3 x 2 me sale error 9 fuera de indice.
Mi código para multiplicar es:
Dim nfa As Integer
Dim nca As Integer
Dim nfb As Integer
Dim ncb As Integer
Dim i As Integer
Dim j As Integer
Dim g As Integer
Dim h As Integer
nfa = InputBox("Número de filas de la Matriz A")
nca = InputBox("Número de columnas de la Matriz A")
ReDim a(1 To nfa, 1 To nca)
nfb = InputBox("Número de filas de la Matriz B")
ncb = InputBox("Número de columnas de la Matriz B")
ReDim b(1 To nfb, 1 To ncb)
If (nca = nfb) Then 'redimensiono C ya que las matrices son multiplicables
ReDim c(1 To nfa, 1 To ncb)
End If
'pedir valores A
For i = 1 To nfa
For j = 1 To nca
a(i, j) = InputBox("A (" & i & "," & j & " ) = ")
Next j
Next i
'muestro valores
For i = 1 To nfa
For j = 1 To nca
List1.AddItem a(i, j)
Next j
Next i
'pedir valores B
For i = 1 To nfb
For j = 1 To ncb
b(i, j) = InputBox("B (" & i & "," & j & " ) = ")
Next j
Next i
'muestro valores
For i = 1 To nfb
For j = 1 To ncb
List2.AddItem b(i, j)
Next j
Next i
'multiplicación
Dim k As Integer
For i = 1 To nfa
For j = 1 To nca
c(i, j) = 0
For k = 1 To nfa
c(i, j) = c(i, j) + a(i, k) * b(k, j)
Next k
Next j
Next i
'muestro valores
For i = 1 To nfa
For j = 1 To ncb
List3.AddItem c(i, j)
Next j
Next i
No se como asiganr la matriz C a 0 y multiplicarla en caso de que sea una multiplicación de una matriz 2 x 3 por una 3 x 2.
Disculpa la molestia y espero que cuando tengas un tiempo le eches un viszato a mi consulta.

1 respuesta

Respuesta
1
Yo no entiendo muy bien el proceso de multiplicacionde matrices, sin embargo el error es porque tratas de acceder a un elemento de la matrix que no se encuentra, por ejemplo tiu matriz es de 3x2 y esta intentando acceder al elemento 4.
Una de las cosas que debes probar y que veo en tu código es que las matrices empiezan en cero y tu las empiezas en 1, quizás ese es tu error, para finalizar tu for debe ser tuvariable -1 pues el indice de las matrices empieza en cero.
Verifica esto y si continuas con problemas me vuelves a escribir.
Muchas gracias por la rápida respuesta mi problema era que cuando empiezo la multiplicación con los for es:
for i = 1 to nfa
for j = 1 to ncb 'Yo aqui repetia nca.
Muchas gracias por tu respuesta tan rápida, que estés bien saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas