La función find() en MATLAB se usa para encontrar los índices y valores de elementos distintos de cero o los elementos que satisfacen una condición dada. La expresión relacional se puede usar junto con find para encontrar los índices de los elementos que cumplen la condición dada. Devuelve un vector que contiene los índices lineales.
Usando el índice lineal, se puede acceder a una array multidimensional usando un solo subíndice. MATLAB trata la array como un vector de una sola columna con cada columna añadida al final de la columna anterior.
Ejemplo:
Por ejemplo, considere la siguiente array de 3 × 3 A =
1 4 7
2 5 8
3 6 9
En esta array, todos los elementos representan su índice lineal, es decir, podemos hacer referencia a A(1,2) con A(4).
Sintaxis:
A continuación se muestran varias maneras de usar la función:
- k = find(X) : Devuelve los índices de todos los elementos distintos de cero.
- k = find(X, n) : Devuelve los primeros n índices de elementos distintos de cero en X
- k = find(X, n, direction) : la dirección puede ser ‘primera’ o ‘última’. Si la dirección es la primera, esta función devolverá los primeros n índices correspondientes a elementos distintos de cero y si la dirección es la última, esta función devolverá los últimos n índices correspondientes a elementos distintos de cero.
- [row, col] = find() : se utiliza para obtener el subíndice de fila y columna para todos los elementos distintos de cero.
- [row, col, v] = find() : la fila y la columna contendrán subíndices para todos los elementos que no sean cero y v es un vector que contendrá todos los elementos que no sean cero.
Nota: k tendrá la misma orientación que X si X es un vector y si X es una array multidimensional, entonces k será un vector de columna que contendrá índices lineales.
Ejemplo 1: el siguiente código devolverá los índices de elementos distintos de cero en una array 1-D.
MATLAB
% Defining array A = [1 2 3 0] % Getting indices of non zero elements find(A)
Producción:
Ejemplo 2: El siguiente código devolverá los primeros 2 índices de elementos donde el elemento será mayor que 3.
MATLAB
% Defining array A = [1 2 0; 3 1 4; 5 6 7] % Getting first 2 indices find(A>3, 2)
Producción:
Ejemplo 3: El siguiente código devolverá los últimos 2 índices de fila y columna de elementos que son mayores que 3.
MATLAB
% Defining array A = [1 2 0; 3 1 4; 5 6 7] % Getting row and column [row, col] = find(A>3, 2, 'last')
Producción:
Entonces, A(2, 3) y A(3, 3) son los últimos elementos que son mayores que 3. Obtuvimos (2, 3) y (3, 3) como salida, no (3,2) y (3, 3) porque MATLAB trata la array como un vector de una sola columna con cada columna añadida al final de la columna anterior.
Ejemplo 4: El siguiente código devolverá índices de todos los elementos cero. Este código usa el operador de negación (~) junto con la función de búsqueda.
MATLAB
% Defining array A = [1 2 3 0] % Getting indices of zero elements find(~A)
Producción:
Publicación traducida automáticamente
Artículo escrito por aman neekhara y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA