Multiplicar 2 matrices 3x2 y 2x4

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Multiplicar 2 matrices 3x2 y 2x4

Notapor kurtero » 03 Abr 2011 01:09

Hola.. necesito que me ayuden con un ejercicio.. que es multiplicar 2 matrices 3x2 y 2x4 en vba macro.. o algún documento o manual en donde pueda guiarme.
saludos.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
kurtero
Miembro Nuevo
Miembro Nuevo
 
Registrado: 03 Abr 2011 00:42

Re: Multiplicar 2 matrices 3x2 y 2x4

Notapor SolucionesOffice » 03 Abr 2011 16:34

Hola kurtero

Para multiplicar matrices yo uso esta función (no es mia, la conseguí en Internet...)
Código: Seleccionar todo
Function M_Mult(ParamArray IPM() As Variant) As Variant
    Dim i As Long, j As Long, k As Long, L As Long, temp As Double
    Dim M As Variant, Matrix As Variant, hold As Variant
    '***********************************************
    '* Function multiplies n matrices.             *
    '* Matrices must be conformable:               *
    '* Matrix M(i) is mxn and matrix M(i+1) is nxm *
    '***********************************************
    'Cycle through the parameter array multiplying each matrix
    M = IPM(0)
    For L = LBound(IPM) To UBound(IPM) - 1
        'Check that matrices are conformable
        If UBound(M, 2) <> UBound(IPM(L + 1), 1) Then Exit Function
        'Redimension the product matrix
        ReDim Matrix(1 To UBound(M, 1), 1 To UBound(IPM(L + 1), 2))
        'Multiplication routine
        For i = 1 To UBound(M, 1)
            For j = 1 To UBound(IPM(L + 1), 2)
                For k = 1 To UBound(IPM(L + 1), 1)
                    temp = temp + M(i, k) * IPM(L + 1)(k, j)
                Next k
                Matrix(i, j) = temp
                temp = 0
            Next j
        Next i
        M = Matrix
    Next L
    M_Mult = Matrix
End Function


y el modo de usarla es el siguiente:
Código: Seleccionar todo
Sub EjemploMultiplicarMatrices()

    Dim MatrizA(3, 2)
    Dim MatrizB(2, 4)
    Dim MatrizResultado
   
    MatrizA(1, 1) = 1
    MatrizA(1, 2) = 3
    '...
    MatrizB(1, 1) = 2
    MatrizB(1, 2) = 4
    '... le das los valores que quieras a las matrices A y B

   
    'Se multiplican las matrices
    MatrizResultado = M_Mult(MatrizA, MatrizB)
   
    'MatrizResultado será una matriz 3x4
   
End Sub


Espero haberte ayudado,
Carlos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
SolucionesOffice
Miembro Frecuente
Miembro Frecuente
 
Registrado: 07 Oct 2010 16:42
Ubicación: Madrid. España

Re: Multiplicar 2 matrices 3x2 y 2x4

Notapor mj19bg63 » 30 Oct 2012 07:33

Es mucho más fácil usando la función MMULT de Excel. Ahí va un ejemplo:

Range("A6", "B7") = Application.Evaluate("MMULT(A1:C2,E1:F3)")
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
mj19bg63
Miembro Nuevo
Miembro Nuevo
 
Registrado: 30 Oct 2012 07:21


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Car88, karmelihobbyt y 17 invitados