Encuentre el índice de valor en un array en Matlab

Ammar Ali 29 noviembre 2021
Encuentre el índice de valor en un array en Matlab

Este tutorial discutirá cómo encontrar el índice de un valor en un array usando la función find() en MATLAB.

Encuentre el índice de valor en un array usando la función find() en MATLAB

En un array, los elementos se colocan en ciertos índices a partir de 1 y así sucesivamente. Para encontrar el índice de un valor en un array dada, podemos usar la función find(). La función find() se usa para encontrar índices y valores de elementos en un array o matriz. Para encontrar índices de elementos, necesitamos definir una condición dentro de la función find(). Por ejemplo, si queremos encontrar el índice de un solo elemento, podemos usar el operador igual dentro de la función find(). Si el mismo elemento está presente en diferentes índices, la función find() devolverá todos los índices donde el elemento está presente. Podemos usar todo tipo de declaraciones condicionales dentro de esta función. Por ejemplo, supongamos que queremos encontrar índices de todos los elementos mayores que cierto número. En ese caso, podemos usar el operador mayor que, y devolverá los índices de todos los elementos mayores que ese número específico. Por ejemplo, busquemos el índice de un solo elemento presente dentro de un array dada. Vea el código a continuación.

mat = [2 3 1 2];
indices = find(mat==2)

Producción :

indices =

     1     4

Los índices variables contienen dos valores en la salida anterior, lo que significa que el elemento está presente en el índice 1 y 4 dentro del array o vector. Ahora consideremos, queremos encontrar los índices de elementos que son mayores que 1. Necesitamos cambiar la condición dentro de la función find(). En lugar de usar el operador igual, usaremos el operador mayor que. Vea el código a continuación.

mat = [2 3 1 2];
indices = find(mat>1)

Producción :

indices =

     1     2     4

En la salida anterior, los índices variables contienen tres valores y, como puede ver, tres elementos son mayores que uno dentro del array o vector dado. Si tenemos un array y queremos encontrar la posición de un elemento dentro del vector, podemos usar la función find(). Sabemos que el elemento dentro de un array se coloca en una determinada fila y columna, y para encontrar esa fila y columna específicas, podemos usar la función find(). Si el elemento está presente en varias posiciones, la función find() devolverá varios valores para la fila y la columna. Vea el código a continuación.

mat = [2 3 ; 2 1]
[row, col] = find(mat==2)

Producción :

mat =

     2     3
     2     1


row =

     1
     2


col =

     1
     1

En el resultado anterior, el array tiene dos filas y dos columnas, el primer valor del vector de fila y columna es la primera posición del elemento, que es la primera fila y la primera columna, y el segundo valor de la fila y columna es el segunda posición del elemento que es 2ª fila y 1ª columna. Si desea encontrar los índices del elemento 2 en el array dada, la función find() devolverá 1 y 2 porque los valores se colocan en columnas en el caso del array. Eso significa que el valor 2 está en el índice 1 y 2 y el valor 3 está en el índice 3 y el valor 1 está en el índice 4. Entonces, si en lugar de dos variables de salida, solo pasa una variable, la función find() devolverá los índices en forma de columna. Por ejemplo, busquemos los índices del elemento y reemplácelos con otro valor. Vea el código a continuación.

mat = [2 3 ; 2 1]
indices = find(mat==2)
mat(indices) = 5

Producción :

mat =

     2     3
     2     1


indices =

     1
     2


mat =

     5     3
     5     1

En el código anterior, primero, encontramos los índices del elemento dos y luego reemplazamos el valor con 5 usando los índices, y como puede ver, los valores del array se han cambiado. Si no quiere usar la función find() por alguna razón, siempre puede hacer su función usando un bucle for y una declaración if. Debe atravesar todos los elementos del array o matriz, y usando la instrucción if, puede verificar si el valor actual coincide con el valor deseado o no. Si coincide con su valor deseado, puede guardar su índice y continuar hasta que haya verificado todos los elementos presentes dentro del array. Por ejemplo, usemos un bucle for y una instrucción if para encontrar los índices de un vector o matriz. Vea el código a continuación.

mat = [2 3 2 1]
indices = [];
for i=1:length(mat)
    if(mat(i) == 2)
        indices = [indices i];
    end
end
indices

Producción :

mat =

     2     3     2     1


indices =

     1     3

En el código anterior, inicializamos los índices variables con un vector vacío. Cuando el valor dos coincide con cualquier elemento dentro del array, guardaremos ese índice en la variable indices.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Array