...

Matlab: principali comandi

by user

on
Category: Documents
16

views

Report

Comments

Transcript

Matlab: principali comandi
Corso di Matlab_Simulink per Ingegneria 3
I comandi input output permettono di ottenere l’input
degli utenti e formattare i dati di output.
Si tratta di comandi di formattazione e visualizzazione
Comandi input/output
disp(A)
visualizza il contenuto, non il nome, dell’array A
disp(‘testo’) visualizza la stringa di testo racchiusa tra due apici
format
controlla il formato di visualizzazione dell’output
sullo schermo
fprintf
controlla il formato dell’output sullo schermo e su
file
x=input(‘testo’)
visualizza il testo specificato, attende ’input’
dall’utente dalla tastiera e registra il valore
della variabile x
x=input(‘testo’,’s’) visualizza il testo specificato, attende l’input
dall’utente dalla tastiera e lo registra come
stringa nella variabile x
Formati di visualizzazione
Tutti i calcoli vengono eseguiti in Matlab i doppia
precisione
format consente di impostare il formato con il quale vengono
visualizzati i valori numerici.
Tale istruzione consente di selezionare i seguenti formati:
format
default equivale al formato short
format short
formato a virgola fissa con 5 cifre
format long
formato a virgola fissa con 15 cifre
format short e formato a virgola mobile con 5 cifre
format long e formato a virgola mobile con 15 cifre
format short g formato migliore tra quello a virgola fissa e mobile con
5 cifre
format long g formato migliore tra quello a virgola fissa e mobile con
con 15 cifre
Formati di visualizzazione ( continuazione)
format hex
format +
format
format
format
format
formato esadecimale
formato compatto. I simboli +,- e blank sono usati per
valori positivi negativi e nulli. Le parti immaginarie
sono ignorate
bank
formato fisso con due cifre decimali
rat
approssimazione razionale
compact elimina i caratteri extra di nuova riga (line-feed)
per una visualizzazione più compatta
loose
annulla l’effetto di format compact
Formati di scrittura su file
fprinf(‘format’,A,…)
scrive gli elementi della array A e tutti
gli argomenti aggiunti dell’array,secondo il formato specificato
nella stringa ‘formato’
Struttura di format % [-][numero1.numero2]C
[-]
numero1
numero2
C
specifica l’allineamento a sinistra
specifica la larghezza minima del campo
specifica il numero di cifre decimali
contiene i codici di controllo e di formattazione
Formati di scrittura su file (continuazione)
C
codici di controllo e di formattazione
Codici di controllo
\n
avvia una nova riga
(linefeed)
\r
inizio di una nuova riga
(carriage return)
\b
spazio bianco
(blackspace)
\t
tabulatore
(tab)
‘’
apice o apostrofo
\\
carattere backslash
\
%% carattere percentuale %
Codici di formattazione
%e
notazione scientifica con e minuscola
%E
notazione scientifica con E maiuscola
%f
formato decimale
%g
formato più corto fra %e e %f.
Funzioni
Matlab possiede molte funzioni già disponibili in
files con estensione .m :
Funzioni matematiche di base
ma l’utente può crearne altre utilizzando M-files:
Funzioni definite dall’utente
In generale una funzione prevede delle variabili
in ingresso e delle variabili in uscita
Funzioni matematiche di base
Tipiche funzioni matematiche di base
F. Esponziali
exp(x)
sqrt(x)
calcola ex
calcola la radice quadrata di x
F. Logaritmiche
log(x)
log10(x)
calcola il logaritmo naturale di x
calcola il logaritmo decimale (in base 10)
Funzioni matematiche di base
Tipiche funzioni matematiche di base
F. Complesse
abs(x)
angle(x)
conj(x)
imag(x)
real(x)
calcola il valore assoluto di x
calcola la fase di un numero complesso
calcola il numero complesso-coniugato di x
rende la parte immaginaria di un numero
complesso x
rende la parte reale di un numero
complesso x
F. Numeriche
ceil(x)
fix(x)
floor(x)
round(x)
sign(x)
approssima x al numero intero più vicino verso
infinito
approssima x al numero intero più vicino verso
lo zero
approssima x al numero intero più vicino verso
- infinito
approssima x al numero intero più vicino
calcola il segno di x e rende :
+1
se x > 0
0
se x = 0
-1
se x < 0
Funzioni trigonometriche
cos(x), sin(x), tan(x) e cot(x)
coseno, seno, tangente e
cotangente di x
acos(x), asin(x), atan(x) e acot(x) arcocoseno, arcoseno, arcotangente,
arcocotangente di x
sec(x) e csc(x)
secante e cosecante di x
cosh(x), sinh(x), tanh(x) e coth(x) coseno iperbolico, seno iperbolico,
sech(x)
tangente iperbolica e cotangente iperbolica
e secante iperbolica di x
asec(x) e acsc(x)
arcosecante e arcocosecante di x
aosh(x), sinh(x), tanh(x) e coth(x) arcocoseno iperbolico, arcoseno iperbolico,
csech(x)
arcotangente iperbolica e arcocotangente
iperbolica e cosecante di x
atan2(y,x)
arcotangente nei quattro quadranti (+pi:-pi)
Funzioni definite dall’utente
Vengono definite attraverso M-file, detti file di funzione.
Nei file di funzione tutte le variabili sono locali: ossia i
loro valori sono disponibili solo all’interno della
funzione.
Essi sono particolarmente utili quando occorre ripetere
una serie di comandi più volte.
Funzioni definite dall’utente
Definizione della funzione
La prima riga di un file di funzione deve iniziare con la
definizione della funzione con la quale:
•si distingue il file come file di funzione dai file script*
•si nomina la funzione e
•si definisce l’elenco dei parametri di input e di output
* Un script-script viene eseguito semplicemente digitando il su
nome senza l’estensione m.
Funzioni definite dall’utente
Le variabili di input specificate nella riga di definizione
della funzione sono locali per quella funzione, questo:
• consente di usare altri nomi di variabili quando viene
chiamata la funzione e
•fa si che tutte le variabili all’interno della funzione
vengono cancellate dopo che la funzione è stata eseguita,
tranne le variabili che figurano nell’elenco della
variabili di output utilizzate nella chiamata di funzione
Sintassi della riga di definizione della funzione
function[var. di output]=nome_funzione(var. di input)
•Le variabili di output devono essere racchiuse tra
parentesi quadre
•Le variabili di input devono essere racchiuse tra
parentesi tonde
•Il nome della funzione deve essere uguale al nome del
file con estensione m, in cui sarà salvata la funzione.
Sintassi della riga di richiamo della funzione
Occorre digitarla nel file principale in corrispondenza della
riga di programma nella quale si vuole richiamare la function
[var. di output]=nome_funzione(var. di input)
•Le variabili di output devono essere racchiuse tra parentesi
quadre
•Le variabili di input devono essere racchiuse tra parentesi tonde
•Il nome della funzione deve essere uguale al nome del file con
estensione m, in cui sarà salvata la funzione.
Comandi per trovare punti singolari di una funzione
Determinazione degli zeri di una funzione
•Per le funzioni polinomiali si usa roots
•Per tutte le altre funzioni si usa fzero
Detrminazione del minimo di una funzione
Si usa fmin e fmins
Sintassi dei comandi per trovare minimi e zeri di una
funzione
fmin(‘funzione’,x1,x2) rende il valore x nell’intervallo
[x1,x2] che corrisponde a un mini o della funzione di
una variabile descritta dalla stringa ‘funzione’
fmins(‘funzione’,x0) usa il vettore iniziale x0 per
trovare un minimo della funzione di più variabili
descritta dalla stringa ‘funzione’
fzero(‘funzione’,x0) usa il vettore iniziale x0 per
trovare uno zero della funzione di una variabile descritta
dalla stringa ‘funzione’
I comandi fzero, fmin e fmins hanno forme
sintatiche alternative che consentono di
specificare la precisione richiesta per la
soluzione o il numero di passaggi da effettuare
prima di interrompere la routine dei comandi.
Per ulteriori dettagli utilizzare in modalità
‘command window’ il comando Help .
Tali funzioni possono essere utili per risolvere
problemi semplici di ottimizzazione
Istruzioni di controllo
for ripetizione di un insieme di istruzioni per un
numero predeterminato di interazioni ( deve
terminare con end)
while ripetizione di un insieme di istruzioni finché una
determinata condizione rimane vera (deve
terminare con end)
if
istruzione condizionale (deve terminare con end)
può utilizzare else e elseif
else identifica un blocco di istruzioni alternative
elseif esegue un blocco di istruzioni se è soddisfatta
una condizione alternativa
end termina le istruzioni if, for e while
Istruzioni di controllo (continuazione)
termina l’esecuzione di un ciclo for o while
indirizza il controllo di un programma
confrontando l’espressione di input con le
espressioni associate alle clausole case
case
utilizzato con switch per controllare
l’esecuzione di un programma
findstr(‘s1’,’s2’) date le stringhe di caratteri s1 e s2,
trova gli indici iniziali di qualsiasi
ricorrenza della stringa più corta
all’interno della stringa più lunga
break
switch
Operatori relazionali
<
<=
>
>=
==
~=
minore
minore o uguale
maggiore
maggiore o uguale
uguale
diverso*
*
Il simbolo ~ si digita tenendo premuto alt e digitando 126
sul tastierino numerico
Operatori logici e funzioni logiche
Matlab ha 4 operatori logici o booleani e una serie di
funzioni logiche
Operatori logici
~
NOT
l’istruzione ~ A rende una array delle
stesse dimensioni di A; con elementi
pari a 1 se quelli corrispondenti di A
sono nulli altrimenti sono pari a 0
&
AND
l’istruzione A & B restituisce un
array delle stesse dimensioni di A e B;
gli elementi del nuovo array sono pari
a 1 se i corrispondenti elementi di A e
B sono entrambi diversi da 0
altrimenti sono pari a 0.
|
OR
xor(A,B)
l’istruzione A | B rende una array
delle stesse dimensioni di A e B; con
elementi pari a 1 se almeno 1 dei due
elementi corrispondenti di A e B è
diverso da 0; e pari a 0 se entrambi
gli elementi di A e B sono nulli.
OR eslcusivo
l’istruzione di xor(A,B)
restituisce un array delle stesse dimensioni
di A e B; gli elementi del nuovo array sono
pari a 1 se uno solo dei due elementi
corrispondenti di A e B è diverso da 0 (non
entrambi); sono pari a 0 se entrambi gli
elementi di A e B sono nulli o diversi da 0.
any(x)
any(A)
all(x)
Funzioni logiche
restituisce uno scalare , che è pari a 1 se
almeno uno degli elementi del vettore x è
diverso da zero, 0 negli altri casi
restituisce un vettore riga che ha lo stesso
numero di colonne della matrice A e che
contiene 1 e 0 in funzione del fatto che la
corrispondente colonna di A contiene
oppure no almeno un elemento diverso da 0.
restituisce uno scalare, che è pari a 1 se tutti
gli elementi del vettore x sono diversi da 0, 0
negli altri casi
find(x)
[u,v,w]= find(A)
finite(A)
Funzioni logiche
crea un array che contiene gli indici
degli elementi non nulli degli array x
crea gli array u e v che contengono
gli indici delle righe e delle colonne
degli elementi non nulli della matrice
A, e l’array w che contiene i valori
degli elementi non nulli. L’array w
può essere omesso.
restituisce un array della stessa
dimensione di A i cui elementi sono
pari a 1 se i corrispondenti elementi
di A sono valori finiti, 0 negli altri
casi.
Funzioni logiche
isnan(A)
restituisce un array della stessa
dimensione di A i cui elementi sono
pari a 1 se i corrispondenti elementi di
A sono pari a “NAN”(Not a Number, numero
non definibile), 0 negli altri casi
isinf(A)
restituisce un array della stessa dimensione di
A i cui elementi sono pari a 1 se i
corrispondenti elementi di A sono pari a
“INF”, 0 negli altri casi
Funzioni logiche
isempty(A) restituisce 1 se A è una matrice vuota, 0 negli
altri casi.
isreal(A)
restituisce 1 se A non contiene elementi con
parti immaginarie, 0 negli altri casi
Fly UP