Vettori in Octave


Analisi numerica > Vettori in Octave

lezione
lezione
Vettori in Octave
Tipo di risorsa Tipo: lezione
Materia di appartenenza Materia: Analisi numerica

Creazione di vettori

modifica

Per creare un vettore   di tre elementi in Octave inseriamo gli elementi tra parentesi quadre:

octave:1> x = [1 2 3]
x =

  1  2  3

Quello appena creato è un vettore riga. Per creare un vettore colonna   scriviamo:

octave:2> y = [1; 2; 3]
x =

  1
  2
  3

cioè ogni punto e virgola indica una nuova riga. Possiamo far diventare un vettore riga un vettore colonna prendendone il trasposto

octave:3> x = [1 2 3]'
x =

  1
  2
  3
octave:4> y'
ans =

  1  2  3

Operazioni sui vettori: somma e prodotto

modifica

Ovviamente non è possibile fare la somma tra i due vettori   e  appena definiti in quanto non è matematicamente definita la somma tra un vettore riga ed uno colonna. Possiamo sommare però   e   o   e  :

octave:5> z = x + y
error: operator +: nonconformant arguments (op1 is 1x3, op2 is 3x1)
octave:6> z = x + y'
z =

  2  4  6

L'operazione di moltiplicazione, avendo entrambi i vettori lo stesso numero di elementi, è invece ben definita. Non vale la proprietà commutativa:  , cioè è una matrice di una riga e tre colonne, mentre  . Moltiplicando   per   stiamo di fatto calcolando il prodotto interno  , mentre moltiplicando   per   stiam facendo il prodotto esterno   ottenendo una matrice:

octave:7> prodotto_interno = x * y
prodotto_interno =  14
octave:8> prodotto_esterno = y * x
prodotto_esterno =
  1   2   3
  2   4   6
  3   6   9

Se volessimo moltiplicare i due vettore componente per componente, cioè calcolare   per  , è possible utilizzare l'operatore "." prima della moltiplicazione. Questa operazione è definita solo per vettori della stessa dimensione:

octave:9> w = x .* y
error: product: nonconformant arguments (op1 is 1x3, op2 is 3x1)
octave:10> w = x .* y'
w =
  1   4   9

Accesso agli elementi del vettore

modifica

Se si vuole conoscere la lunghezza del vettore scriviamo:

octave:11> N = length(x)
N =  3

Per accedere alle componenti del vettore si usano le parentesi tonde:

octave:12> x(2)
ans =  2
octave:13> x(end)
ans =  3

L'operatore ":" può essere utilizzato per accedere ad un insieme continuo di elementi del vettore:

octave:14> x(2:3)
ans =
  2   3
octave:15> x(1:end)
ans =
  1   2   3
octave:16> x(:)
ans =
  1   2   3

Se invece volessimo vedere solo il primo e l'ultimo e elemento scriviamo:

octave:17> x([1 3])
ans =
  1   3

Di fatto l'operazione "a:b" crea un vettore con elementi che vanno da "a" a "b" con passo 1.

octave:18> x = 1 : 3
x =
  1   2   3
octave:19> x = 1.4 : 3.7
x =
   1.4000    2.4000    3.4000

Per creare un vettore con elementi da "a" a "b" con un passo diverso da 1 si utilizza l'operazione "a:passo:b"

octave:20> x = 1 : 0.1 : 1.5
x =
   1.0000    1.1000    1.2000    1.3000    1.4000    1.5000