Anuncio

Colapsar
No hay ningún anuncio todavía.

Problema con Matlab y operadores lógicos

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Matlab Problema con Matlab y operadores lógicos

    Hola:

    Estoy creando un programa y mi problema es el siguiente:

    tengo un vector del tipo x=[3 2 1]
    y quiero que me muestre el vector (disp(x)) si se cumplen estás condiciones:
    - Que x(1) sea igual a 3, 4 ó 5,
    - Que x(2) sea igual a 5, 8 ó 3,
    - Y que x(1) sea diferente de x(2).
    O sea, que quiero que se cumplan las tres condiciones pero cada una de ellas debe cumplir una de todas las especificadas.

    ¿Cómo implemento esto en Matlab?
    He probado con if x(1)==3||4||5 && x(2)==5||8||3 && x(1)~=x(2), y también con xor, pero este comando solo puede aplicarse sobre dos valores, no sobre más. ¿Cómo puedo aplicar xor o un comando que haga lo mismo sobre varias variables de entrada?

    Gracias por todas las ayudas
    Última edición por isacampo; 15/01/2013, 19:22:10.

  • #2
    Re: Problema con Matlab y operadores lógicos

    Aquí te dejo ese ejercicio hecho, funciona con if anidados, si no, no coge la tercera condición. Espero que te sirva!

    [FONT=Courier]if x(1)~=x(2)[/FONT]
    [FONT=Courier] error('no se cumplen las condiciones')[/FONT]
    [FONT=Courier]if x(1)==3||x(1)==4||X(1)==5&&x(2)==5||x(2)==8||X(2)==3[/FONT]
    [FONT=Courier] disp(x)[/FONT]
    [FONT=Courier]else[/FONT]
    [FONT=Courier] error('no se cumplen las condiciones')[/FONT]
    [FONT=Courier]end[/FONT]
    [FONT=Courier]end


    [/FONT]
    Última edición por gdonoso94; 15/01/2013, 20:06:47.
    'Como físico, no temo a la muerte, temo al tiempo.'
    'Bene curris, sed extra vium.'
    'Per aspera ad astra.'

    Comentario


    • #3
      Re: Problema con Matlab y operadores lógicos

      Yo no conozco el Matlab pero en todos los lenguajes de programación con los que he tenido contacto la precedencia del relacional Y es mayor que la del relacional O, por lo cual creo que tu segundo "if" no debe funcionar correctamente. Asumiendo que Matlab use los paréntesis como forma de agrupar, yo haría la pregunta

      [FONT=Courier]if ([FONT=Courier New]x(1)==3||x(1)==4||X(1)==5) [/FONT]&& ([FONT=Courier New]x(2)==5||x(2)==8||X(2)==3)[/FONT] && [FONT=Courier New]x(1)~=x(2)[/FONT]

      Saludos,

      Al[/FONT]
      Don't wrestle with a pig in the mud. You'll both get dirty, but the pig will enjoy it. - Parafraseando a George Bernard Shaw

      Comentario

      Contenido relacionado

      Colapsar

      Trabajando...
      X