Matlab - sumar matriz

 
Vista:
sin imagen de perfil

sumar matriz

Publicado por Arturo (10 intervenciones) el 07/09/2017 19:15:03
Hola buenas dias, quisiera saber como sumar una matriz que es creada por un ciclo for, y que quede de la misma dimension establecida desde el inicio.
intente algo asi
1
2
3
4
5
6
7
8
mg1=0;
     switch mk1
         case 1
             mg1=mg11;
         case 0
             mg1=zeros(6,6);
     end
     mg1=mg1+mg11;
pero no me sale u.u, anexo todo el codigo en una carpeta comprimida.
Gracias por su atencion
(cacho de codigo)
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
%Matriz global
rt=T*riglocal*Tt;
mg11=rt([1 2 3 4 5 6],[1 2 3 4 5 6]);
mg12=rt([7 8 9 10 11 12],[1 2 3 4 5 6])*-1;
mg21=rt([1 2 3 4 5 6],[7 8 9 10 11 12])*-1;
mg22=rt([7 8 9 10 11 12],[7 8 9 10 11 12]);
numgra=nodo(end,end);
z=zeros(numgra,numgra);
 
for mm=1:nod
pp=nodos(mm,1);
oo=nodos(mm,2);
uu=nodos(mm,3);
V=[pp oo uu];
for i=1:numbarra
 mk1=ismember(V,[a(i,1) a(i,2) a(i,3)],'rows');
  mk2=ismember(V,[a(i,4) a(i,5) a(i,6)],'rows');
mg1=0;
     switch mk1
         case 1
             mg1=mg11;
         case 0
             mg1=zeros(6,6);
     end
     mg1=mg1+mg11;
end
end
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

sumar matriz

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/09/2017 02:48:15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for mm=1:nod
pp=nodos(mm,1);
oo=nodos(mm,2);
 
uu=nodos(mm,3);
V=[pp oo uu];
mg1=0;
for i=1:numbarra
 mk1=ismember(V,[a(i,1) a(i,2) a(i,3)],'rows');
  mk2=ismember(V,[a(i,4) a(i,5) a(i,6)],'rows');
 
     switch mk1
         case 1
             mg1=mg11;
         case 0
             mg1=zeros(6,6);
     end
     mg1=mg1+mg11;
end
end

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
1
Comentar
sin imagen de perfil

sumar matriz

Publicado por Arturo (10 intervenciones) el 08/09/2017 03:10:46
Hola, gracias por tomarte tu tiempo.
Pero aun me genera problemas, se supone que si sale 0 deberia salirme la matriz llena de ceros y cuando sale 1 debe sumarle la matriz, te muestro en pedazo de lo que me muestra command window

V =

5584 0 0


mk1 =

0


mg1 =

1.0e+09 *

0.0745 0 0 0 0 0
0 0.0000 0 0 0 0
0 0 0.0000 0 -0.0013 0
0 0 0 0.9310 0 0
0 0 -0.0013 0 4.7656 0
0 0 0 0 0 0


mk1 =

1


mg1 =

1.0e+09 *

0.1489 0 0 0 0 0
0 0.0000 0 0 0 0
0 0 0.0000 0 -0.0026 0
0 0 0 1.8620 0 0
0 0 -0.0026 0 9.5311 0
0 0 0 0 0 0


mk1 =

0


mg1 =
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

sumar matriz

Publicado por Arturo (10 intervenciones) el 08/09/2017 03:39:03
gracias ya solucione, me ayudaste solo tuviste un pequeno error. pero resolviste mi duda. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil

sumar matriz

Publicado por Arturo (10 intervenciones) el 08/09/2017 18:14:06
Descuida, muchas gracias , si me ayudaste.
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

sumar matriz

Publicado por Arturo (10 intervenciones) el 08/09/2017 22:40:58
Disculpa sabras por que me genera el error, lo que quiero hacer es reescribir la matriz de una forma dinamica la matriz Z , envase con una matriz mas pequena que es m11g
1
2
3
4
5
6
7
8
9
for mm=1:nod
    gl=nodo(mm,1);
        for lg1=gl:(gl+5); gl1=1:6;
            for lg2=gl:(gl+5); gl2=1:6;
                z(lg1,lg2)=m11g(gl1,gl2);
            end
        end
    mk3=ismember(V2,V,'rows');
    mk4=ismember(V1,V,'rows');

Subscripted assignment dimension mismatch.
Error in rigidez>pushbutton4_Callback (line 342)
z(lg1,lg2)=m11g(gl1,gl2);
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