MATLAB Itera attraverso Matrix
- Iterare attraverso una matrice utilizzando l’indicizzazione lineare in MATLAB
-
Iterare attraverso una matrice usando la funzione
arrayfun()
in MATLAB -
Iterare attraverso una matrice usando la funzione
cellfun()
in MATLAB
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()
.