Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Matlab - Sentencia if

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:

Sentencia if

Autor:Pablo (3 intervenciones)
Fecha:07/10/2013 09:07:45
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 y=0 elseif X2_dec(i)<0 y=0 elseif 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.
Responder
información
Otras secciones de LWP con contenido similar...
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Sentencia if

Autor:Luis (4 intervenciones)
Fecha:08/10/2013 19:32:59
Perdonaras mi ignorancia ya que no he manejado mucho MATLAB o no recuerdo mucho sobre las operaciones que manejas, pero en la posición i=7 tomas de

X1_dec=[8;9;13;12;11;8;7;1;6;11]
y de
X2_dec=[12;13;11;5;7;13;9;6;3;14];

¿7 y 9? Ya que están e la 7° posición y en la condición 3

elseif X1_dec(i).*X2_dec(i)<=8

¿Acaso no es una multiplicación de vectores? 7x9=63 y 63 no es menor o igual a 8. Si es como lo digo ese seria el problema de que se vaya directo a:

y=C-(0.75*(X1_dec).^2+X1_dec.*X2_dec+1.25*(X2_dec).^2)

Saludos.
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Sentencia if

Autor:JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (2584 intervenciones)
Fecha:09/10/2013 01:50:07
Trata de hacer clara tu pregunta, por una parte cuando inicias tu pregunta dices que quieres que se cumpla esta tres condiciones
X1_dec>0
X2_dec>0
X1_dec+X2_dec>=8

pero sin embargo abajo, empiezas probando si son negativos y además pones X1_dec*X2_dec>=8
que es en conclusión, multiplicación o suma, números positivos o negativos.
Tampoco no eres claro que es quieres como salida Y, un vector o un numero, si es un vector, que valores quieres que salga o si un numero que valores quieres que salga.
Hay mucha confusión en tu pregunta.
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Sentencia if

Autor:JOSE JEREMIAS CABALLERO (2584 intervenciones)
Fecha:10/10/2013 15:33:09
Muchas gracias por vuestra ayuda. Finalmente conseguí averiguarlo y la duda ya está resuelta. Intentaré expresarme mejor en la próxima intervención.
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Sentencia if

Autor:Luis (4 intervenciones)
Fecha:11/10/2013 00:56:24
¿Podrías decirnos como lo solucionaste? ¿Cual era el problema?
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Sentencia if

Autor:Pablo (3 intervenciones)
Fecha:21/10/2013 12:22:10
Lo solucioné de la siguiente manera:

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