MATLAB iterar a través de array

Ammar Ali 30 enero 2023
  1. Iterar a través de un array usando indexación lineal en MATLAB
  2. Iterar a través de un array usando la función arrayfun() en MATLAB
  3. Iterar a través de un array usando la función cellfun() en MATLAB
MATLAB iterar a través de array

Este tutorial discutirá cómo iterar a través de un array usando la función de indexación lineal, arrayfun() y cellfun() en MATLAB.

Iterar a través de un array usando indexación lineal en MATLAB

En un array, hay dos tipos de indexación; una es la indexación de filas y columnas en la que tenemos que dar el número de fila y columna para acceder a un elemento presente en el array, la segunda es la indexación lineal en la que podemos acceder a un elemento utilizando solo su índice lineal. Por ejemplo, vea el código a continuación.

m = [2 6 1; 17 19 18]
row_col_index = m(2,3)
linear_index = m(6)

Producción :

m =

     2     6     1
    17    19    18


row_col_index =

    18


linear_index =

    18

En el código anterior, accedemos al último elemento del array utilizando ambos tipos de indexación. En la indexación lineal, los elementos están presentes en el array a partir de la primera columna. Entonces, si cuenta desde la primera columna, el último elemento está presente en el sexto índice. Para iterar un array usando la indexación de filas y columnas, necesita dos bucles, pero en el caso de la indexación lineal, solo necesita un bucle. Por ejemplo, iteremos a través de un array usando indexación lineal. Vea el código a continuación.

m = [2 6 1; 17 19 18];
for i = 1:numel(m)
    disp(m(i))
end

Producción :

     2

    17

     6

    19

     1

    18

En lo anterior, usamos la función numel() para obtener el número total de elementos presentes en el array dada. Y usando un bucle e indexación lineal, mostramos cada elemento uno por uno en la ventana de comandos. Tenga en cuenta la secuencia mediante la cual se muestran los elementos en la ventana de comandos, y esta es la secuencia de la indexación lineal.

Iterar a través de un array usando la función arrayfun() en MATLAB

Si tiene una función y desea aplicarla a cada elemento del array o matriz, una forma de hacerlo es iterar a través de cada elemento como se describe anteriormente y aplicar la función en cada elemento, pero hay otro método fácil en el que puede puede usar arrayfun() para aplicar la función dada a cada elemento del array o matriz. Vea el código a continuación.

output = arrayfun(myFunction , array);

En el código anterior, el arrayfun() aplica la función almacenada en myFunction a cada elemento del array uno por uno y almacena el resultado en la variable output. Por ejemplo, apliquemos una función definida a cada elemento de un array. Vea el código a continuación.

myMatrix = [0 90; 180 270]
myFunction = @(x) cos(x);
output = arrayfun(myFunction , myMatrix)

Producción :

myMatrix =

     0    90
   180   270


output =

    1.0000   -0.4481
   -0.5985    0.9844

Como puede ver en la salida, la función cos(x) se aplica a cada elemento del array y el resultado se almacena en la variable output. Consulte este enlace para obtener más información sobre arrayfun().

Iterar a través de un array usando la función cellfun() en MATLAB

Si tiene una función y desea aplicarla a cada elemento de una celda determinada, una forma de hacerlo es iterar a través de cada elemento como se describe anteriormente y aplicar la función en cada elemento, pero hay otro método fácil en el que puede use el cellfun() para aplicar la función dada a cada elemento de la celda. Vea el código a continuación.

output = cellfun(myFunction , myCell);

En el código anterior, el cellfun() aplica la función almacenada en myFunction a cada elemento de la celda uno por uno y almacena el resultado en la variable output. Por ejemplo, apliquemos una función definida a cada elemento de una celda. Vea el código a continuación.

myCell = {0,90,180,270}
myFunction = @(x) sin(x);
output = cellfun(myFunction , myCell)

Producción :

myCell =

  1×4 cell array

    {[0]}    {[90]}    {[180]}    {[270]}


output =

         0    0.8940   -0.8012   -0.1760

Como puede ver en la salida, la función sin(x) se aplica a cada elemento de la celda y el resultado se almacena en la variable output. Consulte este enlace para obtener más información sobre cellfun().

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 Matrix