Matlab - Condicion if

   
Vista:

Condicion if

Publicado por Adrian (20 intervenciones) el 19/04/2017 00:59:13
hola, necesito saber si alguien conoce la forma de hacer la siguiente condición.

Tengo dos vectores, por ejemplo

a=[1 3 4 0.8 0.6 0.7 3 2]
b=[4 6 1 6 6.6 9 6 1]

y la condición es:

a>1 o b>5 por tres elementos consecutivos y en aumento, Y a>0.5 en esos tres elementos o ubicaciones.

si esto se cumple

c=1

En caso contrario

c=0

En este ejemplo la respuesta seria que c=1, ya que en el vector b, tenemos los elementos b(4), b(5), b(6), es decir, 6 - 6.6 - 9, los tres mayores a 5 y en aumento, y a la vez los elementos a(4), a(5), a(6), son mayores a 0.5.

Cualquier ayuda se agradece !
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 JESUS DAVID ARIZA ROYETH

Condicion if

prueba a ver si este código te sirve :

1
2
3
4
5
6
7
8
9
10
11
a=[1 3 4 0.8 0.6 0.7 3 2];
b=[4 6 1 6 6.6 9 6 1];
t=and(or(and(a>1,[diff(a) 1]>0),and(b>5,[diff(b) 1]>0)),a>0.5);
C=0;
for k=1:length(t)-1
    if sum(t(k:k+1))==2
        C=1;
        break;
    end
end
disp(C)

saludos
https://www.facebook.com/royethmatlab/
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

Condicion if

Publicado por Adrian (20 intervenciones) el 19/04/2017 20:49:12
Muchas gracias me funciona excelente, solo una duda, y si quisiera ahora hacer otro caso manteniendo las mismas condiciones excepto la condición de incremento o aumento , que habría que modificar ?
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 JESUS DAVID ARIZA ROYETH

Condicion if

1
2
3
4
5
6
7
8
9
10
11
a=[1 3 4 0.8 0.6 0.7 3 2];
b=[4 6 1 6 6.6 9 6 1];
t=and(or(a>1,b>5),a>0.5);
C=0;
for k=1:length(t)-1
    if sum(t(k:k+1))==2
        C=1;
        break;
    end
end
disp(C)
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH

Condicion if

Perdón en la linea 6 sería
1
if sum(t(k:k+1))==3
y no 2 para el caso de tu segunda pregunta, para el caso de tu primera sí debe ser 2
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