Funciones Lógicas
Comprobación de condiciones
Un primer grupo sirve para saber si existen números especiales (infinitos, no definidos, not a number) en una matriz:
- isinf(X)
- devuelve matriz de 0s y 1s, donde estarán a 1 los elementos que sean infinito (Inf ó -Inf).
- isnan(X)
- devuelve matriz de 0s y 1s, donde estarán a 1 los elementos que sean not a number (NaN) o números no definidos (NA).
- finite(X)
- devuelve matriz de 0s y 1s, donde estarán a 1 los elementos que no sean infinitos ni not a number.
- isna(X)
- devuelve matriz de 0s y 1s, donde estarán a 1 los elementos que no sean números no definidos (NA).
Operaciones dentro de la matriz
Sirven para hacer operaciones booleanas sobre los elementos de una matriz. Están pensadas para aplicarse sobre matrices lógicas (de 0s y 1s), pero se pueden aplicar a cualquier matriz en cuyo caso, como es habitual en Octave, consideran los elementos a 0 como falsos y el resto (distintos de 0) como verdaderos. Realizan la operación por columnas (como las funciones de análisis de datos), devolviendo un vector fila. En caso de aplicarse a un vector, sea fila o columna, realizan la operación sobre todos los elementos del vector y devuelven un escalar.
- any(X)
- realiza la o-lógica sobre los elementos de cada columna de la matriz.
- all(X)
- realiza la y-lógica sobre los elementos de cada columna de la matriz.
Búsqueda
Una última función sirve para encontrar, dentro de una matriz, los elementos que son verdad (distinto de 0):
- [i,j,v]=find(X)
- devuelve los índices de fila (i) y columna (j) de los elementos que son verdad (distintos de 0). En v devuelve el valor de dichos elementos.
- find(X)
- es equivalente a find(vec(X)).
Ejemplos |
|
|
Como se ve, combinando adecuadamente estas funciones con los operadores de relación y la indexación de matrices se pueden realizar de manera compacta operaciones que, en otros lenguajes de programación, suponen el uso de estructuras de bucles (for) y condicionales (if).