Come calcolare il prodotto componente per componente dei vettori in Matlab e Octave
Per calcolare il prodotto componente per componente di due vettori su Matlab/Octave si usa l'operatore .*
v.*w
I termini v e w sono due vettori della stessa dimensione.
Il risultato è un vettore composto dai prodotti degli elementi dei vettori che si trovano nella stessa posizione.
$$ \vec{v} \cdot \vec{w} = \begin{pmatrix} v_1 \\ v_2 \\ v_3 \\ \vdots \\ v_n \end{pmatrix} \cdot \begin{pmatrix} w_1 \\ w_2 \\ w_3 \\ \vdots \\ w_n \end{pmatrix} = \begin{pmatrix} v_1 \cdot w_1 \\ v_2 \cdot w_2 \\ v_3 \cdot w_3 \\ \vdots \\ v_n \cdot w_n \end{pmatrix} $$
Nota. Questo moltiplicazione vettoriale è anche conosciuta come prodotto di Hadamard ( Hadamard product ), Schur product o element-wise product.
Esempio
Definire un vettore v
>> v=[1;2;3]
v =
1
2
3
Definire un altro vettore w con lo stesso numero di elementi
>> w=[4;5;6]
w =
4
5
6
Calcolare il prodotto termine a termine dei due vettori
>> v.*w
ans =
4
10
18
Matlab calcola il prodotto componente per componente degli elementi.
Il risultato è un vettore composto dai prodotti degli elementi dei due vettori che si trovano nella stessa posizione
$$ \vec{v} \cdot \vec{w} = \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix} \cdot \begin{pmatrix} 4 \\ 5 \\ 6 \end{pmatrix} = \begin{pmatrix} 1 \cdot 4 \\ 2 \cdot 5 \\ 3 \cdot 6 \end{pmatrix} = \begin{pmatrix} 4 \\ 10 \\ 18 \end{pmatrix} $$