Matlab - duda sentencia if

   
Vista:

duda sentencia if

Publicado por Pablo (3 intervenciones) el 07/10/2013 10:50:05
Buenos días. Estoy escribiendo mi proyecto fin de carrera y tengo algunas dudas muy simples sobre programación con matlab.
Tengo el dos vectores:
X1_dec=[8;9;13;12;11;8;7;1;6;11];
X2_dec=[12;13;11;5;7;13;9;6;3;14];
y una función:
y=(0.75*(X1_dec).^2+X1_dec.*X2_dec+1.25*(X2_dec).^2);
C=675

Necesito que se cumplan las siguientes tres condiciones:
X1_dec>0
X2_dec>0
X1_dec+X2_dec>=8

Quiero un vector con el valor de Y en el caso de que se cumplan las tres condiciones. Sino, que el valor de Y sea 0.

Esto es lo que he programado:

for i=1:10;
if X1_dec(i)<0 | X2_dec(i)<0 | X1_dec(i).*X2_dec(i)<=8,
y=0;
else
y=C-(0.75*(X1_dec).^2+X1_dec.*X2_dec+1.25*(X2_dec).^2);
end
end

El resultado que obtengo es un vector con el resultado de Y pero no me ejecuta las condiciones ya que en la posición i=7, no se cumple la condición 3. En lugar de devolverme Y=0 en esa posición, me devuelve el valor de Y como si la cumpliese.

Agradecería mucho que me ayudaseis con esta duda. Sé que es muy simple pero no se en qué me estoy equivocando.
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