Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Matlab - Multiplicar N matrices

  Imprimir  
Vista:

Multiplicar N matrices

Publicado por Ignazio ignaziof.finazzi@gmail.com (3 intervenciones) el 06/03/2012 19:33:06
Hola soy nuevo en este foro y llevo ya unos dos o tres añitos con matlab pero a bajo nivel.

He estado haciendo un programa para sacar la factorizacion LU de una matriz, aunque se que el propio programa tiene una funcion para ello, mi duda es:

Con la funcion eval (interna del programa) he conseguido crear N matrices, que he llamado M, a las cuales les he dado valores dentro de un bucle; mi duda es, ahora necesito multiplicar todas esas variables (Matrices) M, que reciben los nombres (M1,M2,M3,...,Mk,...,MN) y para ello necesito llamarlas a todas, entonces, ¿existe una funcion que las llame sucesivamente o como programo en for, while o if para que me multiplique esas matrices???; porque no se como hacer para llamar a una matriz generica Mk para hacer algo con ella...Si no me he explicado bien pregunten que me aclaro mejor.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Multiplicar N matrices

Publicado por Ignazio (3 intervenciones) el 06/03/2012 19:37:51
Perdon dije que les habia dado valores cosa que me he dado cuenta de que no lo habia hecho bien, asi pues, ahora necesito, ir llamandolas una a una en bucle para darles los valores a cada una...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Multiplicar N matrices

Publicado por JOSE JEREMIAS CABALLERO jjc94@hotmail.com (3 intervenciones) el 06/03/2012 19:47:39
Hola Ignacio.
Bueno copia tu avance al , para ver y entender mejor lo que estas preguntando.


Saludos.

JOSE JEREMIAS CABALLERO


Servicios de programacion matlab
Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

Multiplicar N matrices

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2621 intervenciones) el 07/03/2012 01:24:06
Hola Ignazio.

%% http://www.lawebdelprogramador.com/foros/Matlab/1316740-Multiplicar_N_matrices.html % Hola soy nuevo en este foro y llevo ya unos dos o tres añitos con matlab % pero a bajo nivel. % % He estado haciendo un programa para sacar la factorizacion LU de una % matriz, aunque se que el propio programa tiene una funcion para ello, % mi duda es: % % Con la funcion eval (interna del programa) he conseguido crear N % matrices, que he llamado M, a las cuales les he dado valores dentro % de un bucle; mi duda es, ahora necesito multiplicar todas esas variables % (Matrices) M, que reciben los nombres (M1,M2,M3,...,Mk,...,MN) y para % ello necesito llamarlas a todas, entonces, ¿existe una funcion que % las llame sucesivamente o como programo en for, while o if para que me % multiplique esas matrices???; porque no se como hacer para % llamar a una matriz generica Mk para hacer algo con ella... % Si no me he explicado bien pregunten que me aclaro mejor. clc clear all i=1; n_matrices=3; %generando matrices aleatorias while i<=n_matrices R=round(rand(3,3))+1; v=genvarname(['M',num2str(i)]); eval([v, '=R']); i=i+1; end %multiplicando matrices generadas aleatoriamente a=whos('M*'); Producto=eval(a(1).name); for i=2:n_matrices Producto=Producto*eval(a(i).name); end %producto de las matrices generadas aleatoriamente display(Producto)


EJECUCION >> genvarname3 M1 = 2 2 1 1 1 2 2 2 1 M2 = 1 2 1 2 1 2 1 1 1 M3 = 1 1 1 2 2 1 1 2 1 Producto = 28 35 21 20 25 15 28 35 21 >> genvarname3 M1 = 1 2 2 1 2 1 2 1 1 M2 = 1 1 1 1 1 1 1 1 2 M3 = 2 1 2 2 1 2 1 2 1 Producto = 27 24 27 21 18 21 21 18 21


Saludos.
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave

Multiplicar N matrices

Publicado por Dave correa.dave30@gmail.com (827 intervenciones) el 06/03/2012 20:36:34
Hola Ignazio;

La consulta que planteas sobre como ir creando variables secuenciales se resuelve con el siguiente codigo:

clc,clear all for k = 1:5 v = genvarname(['A',num2str(k)]); eval([v ' = k+3']) end who

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar