Matlab - Almacenamiento de datos recogidos por un for

 
Vista:
sin imagen de perfil
Val: 33
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Almacenamiento de datos recogidos por un for

Publicado por David (32 intervenciones) el 24/08/2017 00:58:41
Hola,

Tengo una duda, tengo 3 for generandome datos, dichos for se detienen con un if el cual dice que si la variable f2 es mayor al valor obtenido cualquiera de los 3 for, estos se detendran,

Mi pregunta es, como puedo yo almacenar los datos que me esta generando el for dentro de un arreglo???

Es decir tomar los valores generados por la variable fpqr100, fpqr010 y fpqr001; y tener acceso a dichos datos en un arreglo ya sea para exportarlos a un excel o a una tabla.

Otra duda que tengo, es que cuando el for se inicia y llega a la condicion de if el ultimo valor obtenido usualmente es mayor a la variable f2, como hago para que solo queden los datos que si o si esten por debajo de la variable f2.

Habia pensado en que una vez tuviese el arreglo con los datos de los 3 for, ingresar a el y ponerle un condicional en el que se eliminen los valores mayores a la variable f2.

Aqui se puede ver como tengo el 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
ohhh = 1000000000000;
L = 10;
W = 8;
H = 2.3;
c = 340;
p100 = 0;
q100 = 0;
r100 = 0;
f2 = 104.25;
%Axiales variando p
for p100 = 1:ohhh
 
    fpqr100 = (c/2)*sqrt(((p100^2)/(L^2))+((q100^2)/(W^2))+((r100^2)/(H^2)))
 
    if fpqr100 >= f2
        break;
    end
 
end
p010 = 0;
q010 = 0;
r010 = 0;
%Axiales variando q
for q010 = 1:ohhh
 
    fpqr010 = (c/2)*sqrt(((p010^2)/(L^2))+((q010^2)/(W^2))+((r010^2)/(H^2)))
 
    if fpqr010 >= f2
        break;
    end
 
end
 
p001 = 0;
q001 = 0;
r001 = 0;
 
%Axiales variando r
 
for r001 = 1:ohhh
 
    fpqr001 = (c/2)*sqrt(((p001^2)/(L^2))+((q001^2)/(W^2))+((r001^2)/(H^2)))
 
    if fpqr001 >= f2
        break;
    end
 
end

Aqui se puede ver lo que me arroja el programa:

fpqr100 =

17


fpqr100 =

34


fpqr100 =

51


fpqr100 =

68


fpqr100 =

85


fpqr100 =

102


fpqr100 =

119.0000


fpqr010 =

21.2500


fpqr010 =

42.5000


fpqr010 =

63.7500


fpqr010 =

85


fpqr010 =

106.2500


fpqr001 =

73.9130


fpqr001 =

147.8261
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

Almacenamiento de datos recogidos por un for

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 24/08/2017 08:32:25
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
>> clear all
ohhh = 1000000000000;
L = 10; W = 8;  H = 2.3;    c = 340;    q100 = 0;   r100 = 0;   f2 = 104.25;
%Axiales variando p
for p100 = 1:ohhh
    fpqr100(p100)= (c/2)*sqrt(((p100^2)/(L^2))+((q100^2)/(W^2))+((r100^2)/(H^2)));
    if fpqr100(p100) >= f2
    break;
    end
end
p010 = 0;      r010 = 0;
%Axiales variando q
for q010 = 1:ohhh
    fpqr010(q010) = (c/2)*sqrt(((p010^2)/(L^2))+((q010^2)/(W^2))+((r010^2)/(H^2)));
    if fpqr010(q010) >= f2
   	break;
    end
end
p001 = 0;   q001 = 0;
%Axiales variando r
for r001 = 1:ohhh
    fpqr001(r001) = (c/2)*sqrt(((p001^2)/(L^2))+((q001^2)/(W^2))+((r001^2)/(H^2))) ;
    if fpqr001(r001)  >= f2
        break;
    end
end
fpqr100
 fpqr010
  fpqr001
fpqr100 =
   17.0000   34.0000   51.0000   68.0000   85.0000  102.0000  119.0000
fpqr010 =
   21.2500   42.5000   63.7500   85.0000  106.2500
fpqr001 =
   73.9130  147.8261


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