MATLAB Itera attraverso Matrix

Ammar Ali 4 luglio 2021
  1. Iterare attraverso una matrice utilizzando l’indicizzazione lineare in MATLAB
  2. Iterare attraverso una matrice usando la funzione arrayfun() in MATLAB
  3. Iterare attraverso una matrice usando la funzione cellfun() in MATLAB
MATLAB Itera attraverso Matrix

Questo tutorial discuterà come iterare attraverso una matrice usando l’indicizzazione lineare, arrayfun() e la funzione cellfun() in MATLAB.

Iterare attraverso una matrice utilizzando l’indicizzazione lineare in MATLAB

In una matrice ci sono due tipi di indicizzazione; uno è l’indicizzazione di riga e colonna in cui dobbiamo dare il numero di riga e colonna per accedere a un elemento presente nella matrice, il secondo è l’indicizzazione lineare in cui possiamo accedere a un elemento utilizzando solo il suo indice lineare. Ad esempio, vedere il codice qui sotto.

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

Produzione:

m =

     2     6     1
    17    19    18


row_col_index =

    18


linear_index =

    18

Nel codice sopra, accediamo all’ultimo elemento della matrice utilizzando entrambi i tipi di indicizzazione. Nell’indicizzazione lineare, gli elementi sono presenti nella matrice a partire dalla prima colonna. Quindi se conti dalla prima colonna, l’ultimo elemento è presente al sesto indice. Per eseguire l’iterazione di una matrice utilizzando l’indicizzazione di riga e colonna, sono necessari due cicli, ma nel caso dell’indicizzazione lineare, è necessario solo un bucle. Ad esempio, iteriamo su una matrice utilizzando l’indicizzazione lineare. Vedi il codice qui sotto.

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

Produzione:

     2

    17

     6

    19

     1

    18

In quanto sopra, abbiamo usato la funzione numel() per ottenere il numero totale di elementi presenti nella matrice data. E utilizzando un bucle e un’indicizzazione lineare, abbiamo visualizzato ogni elemento uno per uno nella finestra di comando. Notare la sequenza con cui gli elementi vengono visualizzati nella finestra di comando, e questa è la sequenza dell’indicizzazione lineare.

Iterare attraverso una matrice usando la funzione arrayfun() in MATLAB

Se si dispone di una funzione e si desidera applicarla a ciascun elemento dell’array o della matrice, un modo per farlo è scorrere ogni elemento come descritto sopra e applicare la funzione su ciascun elemento, ma esiste un altro metodo semplice in cui si può usare arrayfun() per applicare la funzione data a ciascun elemento dell’array o della matrice. Vedi il codice qui sotto.

output = arrayfun(myFunction , array);

Nel codice sopra, l’arrayfun() ha applicato la funzione memorizzata in myFunction a ciascun elemento dell’array uno per uno e memorizza il risultato nella variabile output. Ad esempio, applichiamo una funzione definita a ciascun elemento di una matrice. Vedi il codice qui sotto.

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

Produzione:

myMatrix =

     0    90
   180   270


output =

    1.0000   -0.4481
   -0.5985    0.9844

Come si può vedere dall’output, la funzione cos(x) viene applicata a ciascun elemento della matrice e il risultato viene memorizzato nella variabile output. Controlla questo link per ulteriori informazioni su arrayfun().

Iterare attraverso una matrice usando la funzione cellfun() in MATLAB

Se hai una funzione e vuoi applicarla a ogni elemento di una data cella, un modo per farlo è scorrere ogni elemento come descritto sopra e applicare la funzione su ogni elemento, ma c’è un altro metodo semplice in cui puoi usa il cellfun() per applicare la funzione data a ciascun elemento della cella. Vedi il codice qui sotto.

output = cellfun(myFunction , myCell);

Nel codice sopra, il cellfun() ha applicato la funzione memorizzata in myFunction a ciascun elemento della cella uno per uno e memorizza il risultato nella variabile output. Ad esempio, applichiamo una funzione definita a ciascun elemento di una cella. Vedi il codice qui sotto.

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

Produzione:

myCell =

  1×4 cell array

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


output =

         0    0.8940   -0.8012   -0.1760

Come si può vedere dall’output, la funzione sin(x) viene applicata a ciascun elemento della cella e il risultato viene memorizzato nella variabile output. Controlla questo link per ulteriori informazioni su cellfun().

Autore: 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

Articolo correlato - MATLAB Matrix