Los operadores relacionales comparan los elementos de dos arreglos y devuelven los valores lógicos de verdadero o falso para indicar dónde se guarda la relación.
Como entradas a las expresiones relacionales y lógicas, Matlab considera que cero es falso y que cualquier número distinto de cero es verdadero. La salida de expresiones de este tipo produce 1 si es verdadero y 0 si es falso.
En la tabla 6 se resumen los operadores especiales de Matlab.
Tabla 6. Operadores relacionales.
Operador. | Significado. |
< | Menor que. |
<= | Menor o igual que. |
> | Mayor que. |
>= | Mayor o igual que. |
== | Igual a. |
~= | Distinto de. |
La salida de las operaciones lógicas se puede utilizar en operaciones matemáticas.
En la tabla 7 se resumen los operadores lógicos de Matlab.
Tabla 7. Operadores lógicos.
Operador. | Significado. |
& | Y |
| | O |
~ | No |
Matlab representa los datos booleanos empleando el tipo de datos lógicos. Este tipo de datos representa los estados true (verdadero) y false (falso) mediante el uso de los números 1 y 0 respectivamente. Determinadas funciones y operadores de Matlab devuelven valores lógicos para indicar que se cumple una condición. Es posible usar dichos valores lógicos para indexar un arreglo o ejecutar código condicional. Estas funciones se resumen en la tabla 8.
Tabla 8. Funciones con respuestas lógicas.
Función. | Significado. |
xor (x,y) | Operación “o” exclusiva, devuelve 0 si ambas son falsas o ambas verdaderas y devuelve 1 si una es falsa y la otra verdadera. |
any (x) | Devuelve 1 si algún elemento es un vector x es no nulo y devuelve 0 si son todos nulos, si se trata de una matriz da una respuesta por cada columna. |
all (x) | Devuelve 1 si todos los elementos en un vector x son no nulos y 0 si existe alguno nulo y si se trata de una matriz da una respuesta por cada columna. |
exist(‘x’) | Devuelve uno si existe y cero si no existe. |
isnan (x) | Devuelve unos en magnitudes no numéricas (NaN) en x. |
isinf (x) | Devuelve unos en maginitudes infinitas (Inf) en x. |
isfinite (x) | Devuelve unos en valores finitos en x. |
Existe un orden de precedencia para operadores aritméticos, lógicos y relacionales (tabla 9).
Tabla 9. Orden de precedencia de operadores.
Orden de precedencia de operadores. | |
1° | ^ .^ ‘ .’ |
2° | * / .* ./ . |
3° | + – ~ +(unario) -(unario) |
4° | : > < >= <= == ~= |
5° | | & |
Ejemplo 4.2.
>> a = 1:9, b = 5-a
% definimos dos vectores
a =
2 3 4 5 6 7 8 9
b=
4 3 2 1 0 -1 -2 -3 -4
>> rl=a<6 % pregunta si a es menor que 6, devuelve 1 cuando es verdadero y 0 cuando es falso
rl =
111110000
>> r2 = a==b % pregunta si a es igual a b, devuelve 1 cuando es verdadero y 0 cuando es falso
r2 =
000000000
>> r3= ab % pregunta si a es distinto a b, devuelve 1 cuando es verdadero y 0 cuando es falso
r3 =
1111
11
>> r4 = (a>b)&(b>-3)% pregunta si a>b y b>-3, devuelve 1 cuando es verdadero y 0 cuando es falso
r4 =
0 0 1 1 1 1 1 0 0