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.

Matlab - Multiplicar N matrices

   
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 (2848 intervenciones) el 07/03/2012 01:24:06
Hola Ignazio.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
%% 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)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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 (879 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:

1
2
3
4
5
6
7
8
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