Vai al contenuto

Vettori in Octave

Da Wikiversità, l'apprendimento libero.
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

Ranges

[modifica]

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