Matlab - crear varias matrices con un lazo for

 
Vista:
sin imagen de perfil

crear varias matrices con un lazo for

Publicado por Angel (2 intervenciones) el 02/12/2016 17:27:16
Hola necesita ayuda de quien conozca de tema soy nuevo en matlab y necesito crear varias matrices con un lazo for por ejemplo:
los datos los leo de un archivo excel son 28 datos, pero al momento de crear 28 matrices con los valores de k me sale error

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
clear all; clc
lshaft = xlsread('data.xlsx','Finite elements','B4:B31'); %Longitud total del eje propulsor
Dstl = (xlsread('data.xlsx','Finite elements','C4:C31'))/1000; %Diametro del eje de cola
Dsth = (xlsread('data.xlsx','Finite elements','D4:D31'))/1000; % Diametro del eje de empuje
n_e =33; %Numero de elementos presentes en el sistema
g_l = (n_e+1); %Numero de grados de libertad
E = (2.1*(10^8));%Modulo de Young del material(acero 1045)  
 
for i =1:28;
Istl(i) = (pi*(Dstl(i)^4))/64; %Inercia del eje de cola
Isth(i) = (pi*(Dsth(i)^4))/64; %Inercia del eje de empuje
lstl(i)=lshaft(i)*0.5564;      %Longitud del eje de cola 
lsth(i)=lshaft(i)*(1-0.5564);  %Longitud del eje de empuje
k11(i) = (E*Istl(i)/(lstl(i)^3))*12;
k12(i) = (E*Istl(i)/(lstl(i)^3))*(6*lstl(i));
k13(i) = (E*Istl(i)/(lstl(i)^3))*-12;
k14(i) = (E*Istl(i)/(lstl(i)^3))*(6*lstl(i));
k21(i) = (E*Istl(i)/(lstl(i)^3))*(6*lstl(i));
k22(i) = (E*Istl(i)/(lstl(i)^3))*(4*(lstl(i)^2));
k23(i) = (E*Istl(i)/(lstl(i)^3))*(-6*lstl(i));
k24(i) = (E*Istl(i)/(lstl(i)^3))*(2*(lstl(i)^2));
k31(i) = (E*Istl(i)/(lstl(i)^3))*-12;
k32(i) = (E*Istl(i)/(lstl(i)^3))*(-6*lstl(i));
k33(i) = (E*Istl(i)/(lstl(i)^3))*(12);
k34(i) = (E*Istl(i)/(lstl(i)^3))*(-6*lstl(i));
k41(i) = (E*Istl(i)/(lstl(i)^3))*(6*lstl(i));
k42(i) = (E*Istl(i)/(lstl(i)^3))*(2*(lstl(i)^2));
k43(i) = (E*Istl(i)/(lstl(i)^3))*(-6*lstl(i));
k44(i) = (E*Istl(i)/(lstl(i)^3))*(4*(lstl(i)^2));
 
 
kstl(i) =[k11(i) k12(i) k13(i) k14(i);...
              k21(i) k22(i) k23(i) k24(i);...
              k31(i) k32(i) k33(i) k34(i);...
              k41(i) k42(i) k43(i) k44(i)];
 
end

mas o menos asi deberia de quedar


kstl(1) = [valor k11(1) valor k21 (1) valor k31(1) valor k41(1)...
valor k21(1) valor k22 (1) valor k23(1) valor k24(1)...
valor k31(1) valor k32 (1) valor k33(1) valor k34(1)...
valor k41(1) valor k42 (1) valor k43(1) valor k44(1)]

kstl(2) = [valor k11(2) valor k21 (2) valor k31(2) valor k41(2)...
valor k21(2) valor k22 (2) valor k23(2) valor k24(2)...
valor k31(2) valor k32 (2) valor k33(2) valor k34(2)...
valor k41(2) valor k42 (2) valor k43(2) valor k44(2)]
y asi 28 matrices
Espero me puedan ayudar
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

crear varias matrices con un lazo for

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 03/12/2016 02:18:28
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
clear all; clc
%lshaft = xlsread('data.xlsx','Finite elements','B4:B31'); %Longitud total del eje propulsor
lshaft=rand(28,1);
%Dstl = (xlsread('data.xlsx','Finite elements','C4:C31'))/1000; %Diametro del eje de cola
Dstl=rand(28,1);
%Dsth = (xlsread('data.xlsx','Finite elements','D4:D31'))/1000; % Diametro del eje de empuje
Dsth=rand(28,1);
n_e =33; %Numero de elementos presentes en el sistema
g_l = (n_e+1); %Numero de grados de libertad
E = (2.1*(10^8));%Modulo de Young del material(acero 1045) cl
for i =1:28;
Istl(i) = (pi*(Dstl(i)^4))/64; %Inercia del eje de cola
Isth(i) = (pi*(Dsth(i)^4))/64; %Inercia del eje de empuje
lstl(i)=lshaft(i)*0.5564; %Longitud del eje de cola 
lsth(i)=lshaft(i)*(1-0.5564); %Longitud del eje de empuje
k11(i) = (E*Istl(i)/(lstl(i)^3))*12;
k12(i) = (E*Istl(i)/(lstl(i)^3))*(6*lstl(i));
k13(i) = (E*Istl(i)/(lstl(i)^3))*-12;
k14(i) = (E*Istl(i)/(lstl(i)^3))*(6*lstl(i));
k21(i) = (E*Istl(i)/(lstl(i)^3))*(6*lstl(i));
k22(i) = (E*Istl(i)/(lstl(i)^3))*(4*(lstl(i)^2));
k23(i) = (E*Istl(i)/(lstl(i)^3))*(-6*lstl(i));
k24(i) = (E*Istl(i)/(lstl(i)^3))*(2*(lstl(i)^2));
k31(i) = (E*Istl(i)/(lstl(i)^3))*-12;
k32(i) = (E*Istl(i)/(lstl(i)^3))*(-6*lstl(i));
k33(i) = (E*Istl(i)/(lstl(i)^3))*(12);
k34(i) = (E*Istl(i)/(lstl(i)^3))*(-6*lstl(i));
k41(i) = (E*Istl(i)/(lstl(i)^3))*(6*lstl(i));
k42(i) = (E*Istl(i)/(lstl(i)^3))*(2*(lstl(i)^2));
k43(i) = (E*Istl(i)/(lstl(i)^3))*(-6*lstl(i));
k44(i) = (E*Istl(i)/(lstl(i)^3))*(4*(lstl(i)^2));
 
kstl(:,:,i) =[k11(i)    k12(i)    k13(i)    k14(i);
              k21(i)     k22(i)    k23(i)    k24(i);
              k31(i)     k32(i)    k33(i)    k34(i);
              k41(i)     k42(i)    k43(i)    k44(i)];
end


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
>> elmentos_finitos1
 
kstl(:,:,1) =
 
   1.0e+10 *
 
    5.9377    0.1746   -5.9377    0.1746
    0.1746    0.0068   -0.1746    0.0034
   -5.9377   -0.1746    5.9377   -0.1746
    0.1746    0.0034   -0.1746    0.0068
 
 
kstl(:,:,2) =
 
   1.0e+11 *
 
    1.3335    0.0527   -1.3335    0.0527
    0.0527    0.0028   -0.0527    0.0014
   -1.3335   -0.0527    1.3335   -0.0527
    0.0527    0.0014   -0.0527    0.0028
 
 
 
.
.
.
.
kstl(:,:,26) =
 
   1.0e+06 *
 
    2.5111    0.4528   -2.5111    0.4528
    0.4528    0.1089   -0.4528    0.0544
   -2.5111   -0.4528    2.5111   -0.4528
    0.4528    0.0544   -0.4528    0.1089
 
 
kstl(:,:,27) =
 
   1.0e+10 *
 
    8.5250    0.0598   -8.5250    0.0598
    0.0598    0.0006   -0.0598    0.0003
   -8.5250   -0.0598    8.5250   -0.0598
    0.0598    0.0003   -0.0598    0.0006
 
 
kstl(:,:,28) =
 
   1.0e+08 *
 
    8.0694    1.8907   -8.0694    1.8907
    1.8907    0.5907   -1.8907    0.2953
   -8.0694   -1.8907    8.0694   -1.8907
    1.8907    0.2953   -1.8907    0.5907


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación matlab
[email protected]


http://matlabcaballero.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
sin imagen de perfil

crear varias matrices con un lazo for

Publicado por Angel (2 intervenciones) el 03/12/2016 17:20:10
Muchisimas Gracias Señor Caballero ud siempre dispuesto a ayudar
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