Programmare su OCTAVE: Breve guida pratica
Creare le proprie funzioni:
Per creare una funzione su OCTAVE si sfrutta una sintassi standard:
function nomedellafunzione(variabili)
…
endfunction Attenzione:
Le funzioni devono essere chiamate con lo stesso nome con cui vengono salvate (In pratica l a parte dall'uguale fino alla parentesi seguito da .m).
Funzioni in più variabili:
Si inseriscono separate da una virgola.
nomedellafunzione(v1,v2,...,vn)
Restituire un risultato:
Si inserisce il nome della variabile da calcolare prima del nome della funzione.
function ris = nomedellaf...
Risultati multipli:
Si dividono con le parentesi quadre:
function [r1,r2,...rn] = nomedellaf...
Attenzione:
Per poter ottenere su schermo i risultati multipli vanno assegnati, altrimenti verrà stampato s olo il primo.
Osservazione:
Non importa specificare il tipo del risultato o delle variabili.
Comandi generali:
; Impedisce la stampa su schermo dell'operazione, se non presente il risultato viene stampato.
% Permette di inserire i commenti, tutto ciò che è scritto dopo non viene stampato, il comando si interrompe andando a capo.
pow(a,b) Calcola a alla b
fact(n) Calcola il fattoriale di n.
abs(a) Restituisce il valore assoluto di a.
format long/short Aumenta o diminuisce il numero di cifre visibili a schermo.
help nomecomando Fornisce informazioni sul comando richiesto.
plot(x,y) Riceve in input due vettori di uguale lunghezza e ne inserisce le coordinate sul grafico.
Osservazione: Se ha componente reale + immaginaria da per scontato che siano la x e la y.
In generale sottintende che la x sia la successione degli interi.
Per rappresentare un grafico può essere buono inserire x=1:k:n e y=f(x).
clearplot Elimina i grafici preesistenti.
hold on Permette la sovrapposizione di grafici.
axis('equal') Fissa le dimensioni degli assi.
imagesc(M) Prende in input una matrice e restituisce un grafico con i quadretti colorati in funzione del valore contenuto nella cella.
roots(p) Restituisce le radici del polinomio inserito come vettore di coefficienti.
tic toc Calcola il tempo passato fra l'inserimento di tic e quello di toc.
[a,b]=lu(M) Restituisce i termini L ed U della fattorizzazione LU di M.
Ciclo for:
for k= a:b ...
endfor
Che indica come variabile interna k e con a e b rappresenta il valore da cui parte e quello a cui arriva.
Controllo if:
if a == b
… endif
Osservazione:
true e false sono accettati come condizioni in alternativa a 1 e 0.
Ciclo while:
while a==b ...
endwhile
Osservazione:
La negazione è sfruttando la tilde ~= (Alt Gr ì)
Lavorare con le matrici:
size(vettore o matrice) Restituisce il vettore contenente le dimensioni di quanto inserito.
Inserire un vettore o una matrice:
La sintassi è v = [ 1, 2, 3, … ; 4, 5 ; …]
Dove ogni , sposta sulla cella a destra e ogni ; sposta alla riga successiva.
Range operator:
a:t:b
Restituisce i valori da a al più piccolo prima di b con passo t, è un vettore riga, Osservazione:
Se non si inserisce t viene assunto essere 1.
Comandi rapidi:
zeros(a,b) Restituisce una matrice di 0 di dimensione axb.
ones(a,b) Restituisce una matrice di 1 di dimensione axb.
rand(a,b) Restituisce una matrice valori casuali fra 0 e 1 di dimensione axb.
randn(a,b) Restituisce una matrice valori casuali di dimensione axb.
Osservazione:
Se si inserisce un solo valore sarà una matrice quadrata.
eye(a) Restituisce la matrice identità di dimensione a.
Osservazione:
Se si inseriscono due valori la “taglia” al valore più corto.
vander(vet riga) Restituisce la matrice di Vandermonde con il vettore come prima riga.
Ottenere una sottomatrice:
A = M(2:end ;1:end-2)
Seleziona la sottomatrice di righe da 2 alla fine e di colonne dalla prima a due prima della fine.
Osservazione:
k: è equivalente a k:end Osservazione:
Posso assegnare al contrario i valori di una intera sottomatrice:
M(2:end ;1:end-2)=A
Selezionare un elemento:
M(a,b)
Restituisce il valore contenuto dalla matrice M nel posto (a,b).
M(a,b)=k
Sovrascrive l'elemento (a,b) con il valore k, se non esiste quella cella la matrice viene ampliata con 0 per ammetterlo.
Operazioni:
Applicare una funzione su un vettore restituisce un vettore contenente le soluzioni di ogni valore di partenza.
a.*b Restituisce il prodotto elemento per elemento di due matrici a e b.