La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Matlab/1316740-Multiplicar-N-matrices.html

Multiplicar N matrices

sin imagen de perfil

Multiplicar N matrices

Publicado por Ignazio (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
sin imagen de perfil

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...

Multiplicar N matrices

Publicado por JOSE JEREMIAS CABALLERO (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
[email protected]
Imágen de perfil de JOSE JEREMIAS CABALLERO

Multiplicar N matrices

Publicado por JOSE JEREMIAS CABALLERO (5917 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
[email protected]

Multiplicar N matrices

Publicado por andres Buitrago (1 intervención) el 23/09/2015 02:15:39
Hola buenas noches


Debo realizar el código en matlab para multiplicar 2 matrices pero en el código debo dar la opción para que el usuario pueda ingresar las variables de cada matriz.... alguien me podria colaborar???


Gracias
Imágen de perfil de Dave

Multiplicar N matrices

Publicado por Dave (1094 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
[email protected]
Servicios de Programación Matlab
http://fismatlab.blogspot.com/