Como almacenar cada corrida de un ciclo for en una nueva variable tipo matriz en matlab
Publicado por Jeifer (4 intervenciones) el 20/07/2020 08:47:06
Tengo el siguiente codigo en matlab, lo que necesito es poder guardar cada corrida del ciclo en una nueva variable, lo que se estan generando son matrices, estoy trabajando en un programa de transferencia de calor por metodos finitos y necesito almacenar estas matrices porque luego tengo que ensamblarlas, pero no se como hacerlo, por favor si alguien pudiera ayudarme
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
49
50
51
52
53
54
55
56
prompt='Ingrese el numero de elementos por lado\n';
Nelem=input(prompt);
w=linspace(0,1,Nelem+1);
[a,b]=size(w);%me interesa es b que es el numero de nodos
L=1;%Longitud elemento
c=[1 0 0 0; 1 L 0 0; 1 0 L 0;1 L L L*L];
c_inv=inv(c);
e=0.03;%espesor de la placa
K=0.05;%conducitividad termica del elemento
syms x y
dN1_dx=c_inv(2,1)+c_inv(4,1)*y;
dN1_dy=c_inv(3,1)+c_inv(4,1)*x;
dN2_dx=c_inv(2,2)+c_inv(4,2)*y;
dN2_dy=c_inv(4,2)*y;
dN3_dx=c_inv(4,3)*y;
dN3_dy=c_inv(3,3)+c_inv(4,3)*x;
dN4_dx=c_inv(4,4)*y;
dN4_dy=c_inv(4,4)*x;
k_e=zeros(4);
K_e(1,1)=dN1_dx*dN1_dx+dN1_dy*dN1_dy;
K_e(1,2)=dN1_dx*dN2_dx+dN1_dy*dN2_dy;
K_e(1,3)=dN1_dx*dN3_dx+dN1_dy*dN3_dy;
K_e(1,4)=dN1_dx*dN4_dx+dN1_dy*dN4_dy;
K_e(2,2)=dN2_dx*dN2_dx+dN2_dy*dN2_dy;
K_e(2,3)=dN2_dx*dN3_dx+dN2_dy*dN3_dy;
K_e(2,4)=dN2_dx*dN4_dx+dN2_dy*dN4_dy;
K_e(3,3)=dN3_dx*dN3_dx+dN3_dy*dN3_dy;
K_e(3,4)=dN3_dx*dN4_dx+dN3_dy*dN4_dy;
K_e(4,4)=dN4_dx*dN4_dx+dN4_dy*dN4_dy;
K_e(1,1)=K_e(1,2);
K_e(2,1)=K_e(1,3);
K_e(4,1)=K_e(1,4);
K_e(3,1)=K_e(1,3);
K_e(3,2)=K_e(2,3);
K_e(4,3)=K_e(3,4);
K_e(4,2)=K_e(2,4);
K_e_int=K*e*int(K_e);
%intento de crear las matrices locales
x_move=w(1,1:end-1);
y_move=w(1,1:end-1);%el y va en el ciclo mas externo
for j=1:b-1
for i=1:b-1
K_1=subs(K_e_int,[x,y],[x_move(1,i),y_move(1,j)])
end
end
Valora esta pregunta


0