Matlab - Ensamble de matrices

 
Vista:

Ensamble de matrices

Publicado por Eric Emmanuel (1 intervención) el 06/10/2017 09:40:50
Hola, me pregunto si alguien sabrá de la existencia de alguna función en matlab para ensamblar matrices. Resulta que estoy realizando un programa de elemento finito y necesito ensamblar matrices por montones por ejemplo.
supongamos que tenemos la siguiente matriz [A]=[1 2 ; 3 4 ]; y necesito utilizar esa misma para ensamblar una matriz mas grande ( rellenando los espacios vacíos con ceros) en donde quedaría [B]=[1 2 0; 3 4+1 2; 0 3 4];
si se fijan estoy uniendo a11 con a22 y formando una matriz de 3*3. estuve buscando, y se le llama concatenación, pero no encuentro alguna función que me lo facilite de la manera que lo pretendo.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ensamble de matrices

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/10/2017 14:33:27
1
2
3
4
5
6
7
8
9
10
clear all
A=[1 2 ; 3 4 ]
[f,c]=size(A);
B=zeros(2*f-1);
B(1:f,1:c)=A;
B(f:end,c:end)=A;
B(f,c)=0;
for i=1:f
 B(f,c)=B(f,c)+A(i,i);
end
Puedes hacer un código para tu pregunta. Aquí un avance.

1
2
3
4
5
6
7
8
>> elementos_finitos
A =
     1     2
     3     4
B =
     1     2     0
     3     5     2
     0     3     4

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ensamble de matrices

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/10/2017 14:49:11
1
2
3
4
5
6
7
clear all
A=rand(7)
[f,c]=size(A);
B=zeros(2*f-1);
 B(1:f,1:c)=A;
 B(f:end,c:end)=A;
 B(f,f)=sum(diag(A))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
>> elementos_finitos
A =
    0.1056    0.2810    0.6377    0.0680    0.6753    0.4243    0.1759
    0.6110    0.4401    0.9577    0.2548    0.0067    0.4609    0.7218
    0.7788    0.5271    0.2407    0.2240    0.6022    0.7702    0.4735
    0.4235    0.4574    0.6761    0.6678    0.3868    0.3225    0.1527
    0.0908    0.8754    0.2891    0.8444    0.9160    0.7847    0.3411
    0.2665    0.5181    0.6718    0.3445    0.0012    0.4714    0.6074
    0.1537    0.9436    0.6951    0.7805    0.4624    0.0358    0.1917
B =
    0.1056    0.2810    0.6377    0.0680    0.6753    0.4243    0.1759         0         0         0         0         0         0
    0.6110    0.4401    0.9577    0.2548    0.0067    0.4609    0.7218         0         0         0         0         0         0
    0.7788    0.5271    0.2407    0.2240    0.6022    0.7702    0.4735         0         0         0         0         0         0
    0.4235    0.4574    0.6761    0.6678    0.3868    0.3225    0.1527         0         0         0         0         0         0
    0.0908    0.8754    0.2891    0.8444    0.9160    0.7847    0.3411         0         0         0         0         0         0
    0.2665    0.5181    0.6718    0.3445    0.0012    0.4714    0.6074         0         0         0         0         0         0
    0.1537    0.9436    0.6951    0.7805    0.4624    0.0358    3.0333    0.2810    0.6377    0.0680    0.6753    0.4243    0.1759
         0         0         0         0         0         0    0.6110    0.4401    0.9577    0.2548    0.0067    0.4609    0.7218
         0         0         0         0         0         0    0.7788    0.5271    0.2407    0.2240    0.6022    0.7702    0.4735
         0         0         0         0         0         0    0.4235    0.4574    0.6761    0.6678    0.3868    0.3225    0.1527
         0         0         0         0         0         0    0.0908    0.8754    0.2891    0.8444    0.9160    0.7847    0.3411
         0         0         0         0         0         0    0.2665    0.5181    0.6718    0.3445    0.0012    0.4714    0.6074
         0         0         0         0         0         0    0.1537    0.9436    0.6951    0.7805    0.4624    0.0358    0.1917

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ensamble de matrices

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/10/2017 15:15:39
1
2
3
4
5
6
clear all
A=rand(5)
B=zeros(2*size(A,1)-1);
B(1:size(A,1),1:size(A,1))=A;
B(size(A,1):end,size(A,1):end)=A;
B(size(A,1),size(A,1))=sum(diag(A))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>> elementos_finitos1
A =
    0.5386    0.1239    0.2085    0.9479    0.6210
    0.6952    0.4904    0.5650    0.0821    0.5737
    0.4991    0.8530    0.6403    0.1057    0.0521
    0.5358    0.8739    0.4170    0.1420    0.9312
    0.4452    0.2703    0.2060    0.1665    0.7287
B =
    0.5386    0.1239    0.2085    0.9479    0.6210         0         0         0         0
    0.6952    0.4904    0.5650    0.0821    0.5737         0         0         0         0
    0.4991    0.8530    0.6403    0.1057    0.0521         0         0         0         0
    0.5358    0.8739    0.4170    0.1420    0.9312         0         0         0         0
    0.4452    0.2703    0.2060    0.1665    2.5400    0.1239    0.2085    0.9479    0.6210
         0         0         0         0    0.6952    0.4904    0.5650    0.0821    0.5737
         0         0         0         0    0.4991    0.8530    0.6403    0.1057    0.0521
         0         0         0         0    0.5358    0.8739    0.4170    0.1420    0.9312
         0         0         0         0    0.4452    0.2703    0.2060    0.1665    0.7287


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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
sin imagen de perfil

Ensamble de matrices

Publicado por Eric Emmanuel (1 intervención) el 07/10/2017 00:45:09
mm, no entiendo muy bien que es lo que hace el codigo. me podria ayudar con otro ejemplo para entender bien por ejemplo.
[A]=[a11 a12 a13; a21 a22 a23; a31 a32 a33 ]; y que la matriz concatenada quedara [B]=[a11 a12 a13 0 0; a21 a22+a11 a23+a12 a13 0; a31 a32+a21 a33+a22+a11 a23+a12 a13; 0 a31 a32+a21 a33+a22 a23; 0 0 a31 a32 a33];
A
Matriz-a
B
Matriz-b

de antemano muchas gracias, es uno de mis primeros programas con matlab y ando algo perdido.
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
sin imagen de perfil
Val: 2
Ha aumentado su posición en 20 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ensamble de matrices

Publicado por Augusto (1 intervención) el 05/06/2018 18:47:13
Hola,

Pues a ponerlo en practica, yo tambien ando buscando un excel o algo parecido que suma la Matriz Local con la Matriz Global y asi obtener la Matriz Global Ensamblada del Sistema

Saludos

Rudy
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