Está en la página 1de 4

Declarando condicionales

MATLAB tiene un vocabulario muy rico cuando se trata de operaciones


condicionales pero vamos a comenzar con el uno que es comn a muchos
lenguajes de programacin (A pesar de que la sintaxis puede variar
ligeramente). Este es el caso de comandos que toma la forma:
if (expresin)
commands
...
end
Como es de esperar, si la expresin es verdadera, entonces los comandos
estn ejecutado, de lo contrario el programa contina con el siguiente
comando inmediatamente ms all de la declaracin final. Hay formas ms
complicadas de la orden, pero antes de proceder con estas Primero vamos a
discutir la construccin de la expresion. En primer lugar estn las
comparaciones matemticas simples
a<b Verdadero si a es menor que b
a <= Verdadero b si a es menor que o igual a b
A> B Verdadero si a es mayor que o igual a b
a> b = Verdadero si a es mayor que o igual a b
a == True si a b es igual a b
a ~ = b Verdadero si a no es igual a b
Ms a menudo que no tendremos que formar una sentencia compuesta, que
comprende
ms de una condicin. Esto se hace mediante el uso de expresiones lgicas,
estos son:
and (a,b)
or (a,b)
not (a)
xor (a,b)

a&b

a|b
a

Logical AND
Logical OR
NOT
Logical exclusive OR

El efecto de cada uno de estos comandos se ilustra mejor mediante el


uso de tablas
AND false true
false false false
true false true
OR false true
false false true
true true true

XOR false true


false false true
true true false

NOT (~) Esto simplemente cambia el estado de modo ~ (verdadero) =


falso y ~ (falso) = True.
Hacemos una pausa y simplemente correr a travs de estos operadores
lgicos:
A AND B

Esto es cierto si a y b son ciertos

A OR B
A XOR b

Esto es cierto si uno de a y b es verdadera (o ambos).


Esto es cierto si uno de a y b es cierto, pero no ambos.

En muchos idiomas puede definir booleana (el nombre de George Boole)


variables y stos tendrn significado lgico real. Por ejemplo, en Excel puede
establecer valores para ser verdadera o falsa. En MATLAB cero representa Falso
y cualquier otro valor implica Verdadero. Adoptaremos la convencin de que 1
(uno) es verdadero y 0 (cero) es falsa. De hecho a veces es til definir variables
tales como:
false = 0; true = (~false). Esta declaracin se lee como se establece
verdadero ser igual a no falsa; hemos aadido los soportes de aclaracin.

Ejemplo 3.10
En los siguientes ejemplos, puede ser til para dibujar imgenes, pero
por lo menos debemos aprender a leer estas declaraciones. Recordamos que
en este contexto un corchete, un conjunto cerrado (es decir, incluyendo el
punto final) mientras que un soporte redondo indica un conjunto abierto (es
decir, sin incluir el final punto).
Determinar los conjuntos para los que estas afirmaciones son ciertas:
1.

x> 1 & x <2

Podemos leer este comando como "x es mayor que uno y menor que dos".
Obviamente, esto es cierto slo para valores comprendidos entre uno y dos (no
incluido).
Este es el conjunto abierto (1, 2).
2.

x <0 | x> = 1

Este comando se puede leer como "X menor que cero o mayor que (o igual a
uno". Este conjunto consta de dos partes: x estrictamente negativo o mayor
que x (o igual a uno). De ah que el conjunto es (-, 0) [1, ).
3.

x> 1 | x <2

Este comando se puede leer como "x mayor que 1 x o menos de 2". De hecho
todos los valores de x son mayores que uno o menos de 2, por lo tanto, la
respuesta es (-, ).
4.

x <= 1 | x> = 1

ste dice "x es menor que (o igual a) 1 o X es mayor que (o igual a 1) ". De
nuevo, esto es cierto para todos los valores de x, por lo tanto, la respuesta es

(-, ).
5.

x <= 1 & x> = 1

ste es similar a la anterior con una palabra cambiado de forma que ahora
dice: "x es menor que (o igual a) 1 y x es mayor que (o igual a 1)". El nico
valor que es menor que (o igual a) uno y mayor que (o igual a) se trata de uno
mismo. La respuesta es el valor uno, escrito como {1}.
6.

~ (x> 2)

Este es nuestro primer ejemplo de negacin, que se lee como "x no es mayor
de 2 ", lo cual es cierto para los valores de x menor que (o igual a) 2, que es la
conjunto (-, 2].
7.

(x> 1) y (~ (x <2))

Aqu tenemos "x es mayor que 1 y x no es menor que 2". El segundo parte de
esta expresin significa que x es mayor que (o igual a 2) (y la primera parte es
siempre verdad para este rango), por lo que la solucin es [2, ).
8.

abs (x-1) <2

Aqu tenemos una expresin que implica una funcin matemtica: ste es lee
como: "el mdulo de x menos 1 es inferior a dos". Esto significa puntos que
estn dentro de 2 unidades del punto 1, que es (-1, 3).
9. rem (n, 4) == 1
Este comando calcula el resto cuando se divide por 4 y comprueba si esto es
igual a 1. Los valores para los cuales esto es cierto son {4n + 1: n Z}.

La construccin de los enunciados lgicos


Pasamos ahora realmente construir argumentos lgicos que se pueden utilizar
en si declaraciones.
Ejemplo 3.11
Consideremos un comando que slo se ejecuta si un valor x se encuentra entre
1 y 2 o que es mayor que o igual a 4. Vamos a tratar de describir los procesos
de pensamiento involucrados:

Con el fin de que un valor se encuentra entre uno y dos, tiene que ser
mayor que uno y menos de dos, por lo que este componente se escribe
como:
(x>1) & (x<2)

Si x es mayor que o igual a 4, que se escribe simplemente como x> = 4.


Por ltimo, tenemos que combinar estas condiciones y esto se hace
utilizando la lgica funcionamiento o, dado que el valor de x podra estar
en una u otra de las regiones.
Por lo tanto tenemos
((x>1) & (x<2)) | (x>=4)

Podramos utilizar los comandos en una forma diferente.


a = and(x>1,x<2);
b = (x>=4);
c = or(a,b)