Matlab: grafici ed altro - PowerPoint PPT Presentation

1 / 65
About This Presentation
Title:

Matlab: grafici ed altro

Description:

Matlab: grafici ed altro Edmondo Giovannozzi ENEA C.R. Frascati Outline Esempio per stuzzicare l appetito Introduzione a Matlab Lettura dati di FTU Grafica in ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 66
Provided by: Edmon79
Category:
Tags: altro | grafici | matlab

less

Transcript and Presenter's Notes

Title: Matlab: grafici ed altro


1
Matlab grafici ed altro
  • Edmondo Giovannozzi
  • ENEA C.R. Frascati

2
Outline
  • Esempio per stuzzicare lappetito
  • Introduzione a Matlab
  • Lettura dati di FTU
  • Grafica in Matlab
  • Esempi

3
Esempio (1) per stuzzicare lappetito
  • Esempio per stuzzicare l'appetito
  • shot 18598
  • te ftudatav(shot,'e.ecmtmax')
  • ne ftudatav(shot,'co2dens')/1e20
  • ne ne01.5
  • pe tene
  • hf figure(1) hf e' uguale ad 1
  • set(hf,'color','white')
  • set(hf,DefaultAxesFontSize',12)
  • subplot(3,1,1)
  • plot(te)
  • ylabel('T_e (keV)')
  • title('Shot ' num2str(shot))
  • subplot(3,1,2)
  • plot(ne)
  • ylim(max(0,ylim))

subplot(3,1,3) plot(pe) ylim(max(0,ylim)) ylabel('
p_e (keV 1020m-3)') xlabel('t
(s)') joinaxes
4
Per iniziare
  • Creare una directory
  • HOME/matlab
  • File di startup eseguito allinizio
  • HOME/matlab/startup.m
  • (copiare da giovan/fus/general/corsoMatlab)
  • Directory matlab FTU
  • DASROOT/matlab
  • Esempi in
  • giovan/fus/general/corsoMatlab

5
Per iniziare
  • Per iniziare
  • ltgiovan_at_efrs05 gt matlab
  • Per uscire
  • gtgt exit
  • Help
  • gtgt help ltnome comandogt
  • Esempio
  • gtgt help plot
  • Informazioni sulle variabili presenti in memoria
  • gtgt whos
  • Le variabili di base sono le matrici di numeri
    reali, ma ci sono anche le matrici logiche, le
    stringhe, gli array di celle e le strutture.
  • Per eseguire comandi di sistema
  • gtgt ! ltcomando unixgt
  • gtgt s,w unix(ltcomando unixgt)

Attenzione! In Matlab come in Unix le maiuscole e
le minuscole sono distinte. Tutti i comandi e le
funzioni standard sono in minuscolo.
Nella stringa w il risultato del comando.
6
Help
Struttura dellhelp
Guida alluso
help di base
Guida di riferimento
funzioni di fit avanzato
filtraggio segnali etc.
spline
Statistica
Tutte le proprietà grafiche
7
Matrici reali
  • gtgt a 1, 2, 3, 4 vettore orizzontale di
    numeri reali
  • gtgt b 1 2 3 4 vettore verticale di
    numeri reali
  • gtgt c 1,2,3 4,5,6 matrice 2x3 di numeri
    reali
  • c
  • 1 2 3
  • 4 5 6
  • gtgt whos
  • Name Size Bytes Class
  • a 1x4 32 double array
  • b 4x1 32 double array
  • c 2x3 32 double array
  • gtgt clear per cancellare le variabili create

Attenzione come in FORTRAN le matrici sono
memorizzate per colonne
c
1 4 2 5 3 6
8
Creazione Matrici reali
  • gtgt a ones(2,3) matrice 2x3 piena di 1
  • gtgt b zeros(3,2) matrice 3x2 piena di 0
  • gtgt c 00.42 vettore di reali tra 0 e 2 a
    passi di 0.4
  • c
  • 0 0.4000 0.8000 1.2000
    1.6000 2.0000
  • gtgt d c vettore colonna trasposto di c
  • gtgt whos
  • Name Size Bytes Class
  • a 2x3 48 double array
  • b 3x2 48 double array
  • c 1x6 48 double array
  • d 6x1 48 double array
  • Grand total is 24 elements using 192 bytes

9
Indici
  • gtgt a 1,2,3 4,5,6
  • a
  • 1 2 3
  • 4 5 6

Selezione del 5 elemento in memoria gtgt a(5) ans
3
Indici k lelemento k-esimo. kh dallelemento k
a quello h. kdh come sopra a passi di
d. kend dallelemento k alla fine. kend-1 dalle
lemento k al penultimo tutti gli elementi di
quella dimensione. a con a vettore di indici, gli
elementi corrispondente allindice. b con b
vettore logico, gli elementi per cui b è 1.
Tutti gli elementi gtgt a() ans 1 4 2 5
3 6
Selezione di un singolo elemento gtgt a(2,3) ans
6
Selezione di una colonna gtgt a(,2) ans 2
5
10
Operatori (1)
  • Molti operatori lavorano elemento per elemento
  • gtgt a 1,2,3
  • gtgt b 4,5,6
  • gtgt a b
  • ans 5 7 9
  • Così anche molte funzioni elementari
  • gtgt y sin(00.42)
  • y
  • 0 0.3894 0.7174 0.9320
    0.9996 0.9093

11
Operatori (2)
  • Gli operatori matematici , / , , \
    sono matriciali, i corrispondenti operatori che
    operano elemento per elemento sono ., ./,
    . , .\.
  • Loperatore \ risolve il sistema di equazioni
    matriciale AX B , X A\B.
  • Attenzione
  • gtgt a 1 2 3
  • gtgt 1 / a
  • ans
  • 0 0 0.3333

Loperazione matematica è definita, anche se
molto spesso non è ciò che volevamo. Per avere
linverso del vettore, elemento per elemento
dovevamo scrivere gtgt 1 ./ a
12
Numeri complessi
  • I numeri complessi sono gestiti automaticamente
    in Matlab
  • gtgt a log(-2)
  • a 0.6931 3.1416i
  • gtgt a (3 2i) 3j
  • ans 3.6931 8.1416i
  • gtgt b complex(2)
  • b 2
  • gtgt isreal(b)
  • ans 0
  • gtgt imag(b)
  • ans 0
  • gtgt exp(a)
  • ans -2.0000 0.0000i
  • gtgt imag(exp(a))
  • ans 2.4493e-16

Funzioni conj complesso coniugato. real parte
reale. imag parte immaginaria. abs magnitudine. a
ngle angolo di fase in radianti. isreal test se è
un vettore reale o complesso
gtgt a 1,2i3,4i a 1 0 2i
3 0 4i gtgt a ans 1 3
0 2i 0 4i gtgt a. ans 1
3 0 2i 0 4i
Attenzione, loperatore calcola la matrice
, usare loperatore . per la semplice
trasposizione
13
Array e operatori logici
  • gtgt a 10, 20, 30, 40, 50, 60
  • gtgt b a gt 30
  • b
  • 0 0 0 1 1 1
  • gtgt whos
  • Name Size Bytes Class
  • a 1x6 48 double array
  • b 1x6 48 double array
    (logical)
  • gtgt a(b)
  • ans
  • 40 50 60
  • gtgt id find(B)
  • id
  • 4 5 6
  • gtgt a(id)
  • ans
  • 40 50 60

Operatori di comparazione uguale a diverso
da gt, lt maggiore, minore gt, lt maggiore uguale,
minore uguale
Operatori e funzioni logiche and logico or
logico not logico xor or esclusivo
(funzione) any vero se qualche elemento di un
vettore è diverso da zero o è vero
(funzione). all vero se tutti gli elementi di un
vettore sono diverso da zero o sono veri
(funzione).
14
Stringhe
Per maggiori informazioni gtgt help strfun gtgt help
strings
  • Le stringhe sono vettori riga di caratteri
  • gtgt sa pluto pippo
  • sa
  • pluto
  • pippo
  • gtgt whos
  • Name Size Bytes Class
  • sa 2x5 10 char array
  • Attenzione in memoria sono memorizzate per
    colonne
  • gtgt sa()
  • ans
  • ppliuptpoo

Principali funzioni ischar test se un vettore è
una stringa. strcmp compara due
stringhe. findstr trova una stringa allinterno
di unaltra strtok separa una stringa in token
(uno per volta) (strmtok) trova tutti i token di
una stringa (scritta a Frascati). num2str trasform
a un numero in una stringsa. str2double trasforma
una stringa in un numero. sprintf Output su una
stringa. (vedi I/O) sscanf Input da una stringa.
(vedi I/O)
15
Array di celle
array di celle può contenere oggetti di diversa
natura. Si creano con le parentesi graffe.
  • gtgt a 1, Ciao, 1,2,3
  • a
  • 1 'Ciao' 1x3 double
  • gtgt b a(2)
  • gtgt c a2
  • gtgt whos
  • Name Size Bytes Class
  • a 1x3 400 cell array
  • b 1x1 128 cell array
  • c 1x4 8 char array
  • gtgt st pippo,pluto,topolino

è ancora un array di celle composto di una sola
cella.
è lelemento nella cella
Per inserire un elemento in un array di celle
preesistente gtgt a(2) FTU gtgt a2 FTU
gtgt a(23) FTU,123 gtgt a23 ??
errato
specialmente utile con stringhe di diversa
lunghezza
16
Strutture
  • gtgt a.x 1
  • gtgt a.y 1,2,3
  • gtgt a.s Ciao
  • a
  • x 1
  • y 1 2 3
  • s 'Ciao
  • gtgt a(2).x pluto
  • a
  • 1x2 struct array with fields
  • x
  • y
  • s
  • gtgt a(1).y
  • ans
  • 1 2 3

Ununica variabile a è composta di diversi campi
(x, y, s nellesempio), che possono essere
variabili di qualsiasi tipo.
Si può avere un array di strutture.
Stessa sintassi per leggere il valore di un campo
17
Funzioni matematiche
  • gtgt pi
  • ans 3.1416
  • gtgt atan2(3,4)
  • ans 0.6435
  • gtgt round(3.6)
  • ans 4
  • gtgt floor(3.6)
  • ans 3
  • gtgt mod(13,5)
  • ans 3
  • gtgt 1/0
  • ans Inf
  • gtgt eps
  • ans 2.2204e-16

Tutte le principali funzioni trigonometriche ed
esponenziali acos, acosh, acot, acoth, acsc,
acsch, asec, asech, asin, asinh, atan, atanh,
atan2, cos, cosh, cot, coth, csc, csch, exp, log,
log2, log10, sec, sech, sin, sinh, tan, tanh,
E quelle più specialistiche airy, besselh,
besseli, besselj, besselkm, bessely, beta,
betainc, betaln, ellipj, ellipke, erf, erfc,
erfcinv, erfcx, erfinv, expint, gamma, gammainc,
gammaln, legendre, psi,
Costanti principali pi pi greco i,j unità
immaginaria eps Accuratezza relativa di un
numero reale Inf Infinito NaN Not-a-Number

18
Funzioni di analisi
Principali funzioni di analisi max, min massimo,
minimo di una matrice sum somma degli
elementi mean, std media, deviazione
standard median mediana trapz integrazione
numerica trapezoidale Se applicati ad una matrice
lavorano sulla prima dimensione, che diventa
unitaria.
  • gtgt a 1,2,4
  • gtgt mean(a)
  • ans 2.3333
  • gtgt a 1,2 3,4 6,8
  • a 1 2
  • 3 4
  • 6 8
  • gtgt mean(a)
  • ans 3.3333 4.6667
  • gtgt diff(a)
  • ans 2 2
  • 3 4
  • gtgt cumtrapz(10,20,30,a)
  • ans 0 0
  • 20 30
  • 65 90

Funzioni cumulative cumsum somma
cumulativa cumtrapz integrale trapezoidale
cumulativo
Altre sort ordina un vettore diff differenza
numerica gradient gradiente (attenzione!! non
opera per colonne) fft FFT filter filtro numerico
19
Input Output
  • gtgt a 1,2,3
  • gtgt b Ciao
  • gtgt save prova
  • gtgt clear
  • gtgt load prova
  • gtgt c load(prova)
  • c a 1 2 3
  • b Ciao
  • gtgt whos
  • Name Size Bytes Class
  • a 1x3 24 double array
  • b 1x4 8 char array
  • c 1x1 176 struct array
  • gtgt a 1,2,3 4,5,6
  • gtgt save pluto a ascii
  • gtgt type pluto
  • 1.0000e00 2.0000e00 3.0000e00
  • 4.0000e00 5.0000e00 6.0000e00

Per salvare dei dati e recuperarli usare le
funzioni save e load. i dati vengono scritti in
binario in un file .mat gtgt save nomefile
variabile1 variabile2 gtgt load nomefile gtgt var
load(nomefile) Nellultimo caso le variabili
vengono memorizzate come membri in una struttura,
con lopzione ascii si scrivono e si leggono in
formato ascii (usare solo con singole matrici).
gtgt fid fopen(pippo,w) gtgt fprintf(fid,Ciao
f,3.5) gtgt fclose(fid) gtgt type pippo Ciao
3.500000 gtgt fprintf(Ciao Ciao) Ciao Ciao gtgt a
sprintf(Ciao) a Ciao
Senza lindicazione del file scrive sullo schermo
20
Lettura di un file di testo
  • gtgt type pluto
  • 1.0000e00 2.0000e00 3.0000e00
  • 4.0000e00 5.0000e00 6.0000e00
  • gtgt a load(pluto)
  • a 1 2 3
  • 4 5 6
  • gtgt type esempio.vs
  • File versus di esempio
  • V tempo te ne
  • .data
  • 0.1 1.1 2.2
  • 0.2 0.9 2.3
  • 0.3 1.0 2.1
  • gtgt a vsread(esempio.vs)
  • a tempo 3x1 double
  • te 3x1 double
  • ne 3x1 double

Altri comandi di input fscanf Lettura formattata
da un file fgetl Lettura di una linea di testo da
un file input Lettura di un input
dallutente Esempio gtgt b input(Dimmi
) Dimmi 34 b 34
Lettura di un file versus solo numerico di
piccole dimensioni. Usare vs2mat per file grandi
o con variabili di tipo carattere (vedi dopo).
21
Input/output formati
  • Formato FORTRAN tipo
  • n.mf F Virgola fissa
  • n.md I Intero
  • n.me E Esponenziale
  • n.mg G Esponenziale/Virgola fissa
  • n.mx - Esadecimale
  • ns A Stringa
  • La larghezza del campo è n. Contrariamente al
    fortran se il numero risulta più lungo, il campo
    si allunga di conseguenza senza troncare o
    mettere delle stelline al posto dei numeri. Per i
    formati reali (f,e,g) m è il numero di cifre dopo
    la virgola. Per il formato intero (d,x) m è il
    numero di cifre che deve essere scritto,
    eventualmente mettendo degli zeri sulla sinistra
    del numero. Si può ottenere un risultato simile
    riempendo il campo con zeri anche con il seguente
    formato 0nd.
  • Se n è negativo i numeri si allineano a sinistra.

Esempi gtgt fprintf(a6.2f,3.5) a 3.50 gtgt
fprintf(b-6.3dA,11) b011 A gtgt
fprintf(b06d,11) b000011 gtgt fprintf(Ciao
\nCiao,11) Ciao Ciao
Caratteri speciali \n New line \r Carriage
return \t Horizontal tab \\ Backslash '' Single
quotation mark Percent character
22
Strutture di programmazione
if ltcondizionegt elseif ltcondizionegt else
end
switch ltvariabilegt case ltvaloregt case
ltvalore1gt, ltvalore2gt otherwise end
ltvariabilegt e ltvaloregt possono essere
unespressione il cui risultato è un
numero scalare o una stringa.
for i ltbeggtltendgt end
try catch end
Gestione dellerrore Normalmente vengono eseguite
le istruzioni tra try e catch, in caso di errore
quelle tra catch ed end.
while ltcondizionegt end
break uscita anticipata da un ciclo for o
while continue salta le rimanenti istruzioni e va
alla successiva iterazione.
23
Funzioni e Script
  • Il nome di una funzione o di uno script è quello
    del file in cui risiede.
  • I nomi dei file terminano in .m

Chiamata di una funzione gtgt out1,out2,
funzione(in1,in2,) oppure gtgt funzione(in1,in2,)
I parametri in ingresso sono in1, in2, etc.
mentre out1, out2, etc. sono i parametri in
uscita. Le parentesi quadre sono opzionali se è
presente un solo parametro in uscita.
Script sequenza di comandi come se fossero
immessi da tastiera. Vedono le stesse variabili
che sono visibili allutente. Funzioni possono
avere parametri in input ed in output. La
variabili sono private e non sono più visibili
alla fine della funzione se non sono parametri
duscita.
Definizione di una funzione in un file.
Attenzione il nome della funzione è comunque
quello del file in cui risiede! function o1,o2
funzione(i1,i2) o1 o2
24
Funzioni base per il plot
  • gtgt x 00.810
  • gtgt y1 sin(x)
  • gtgt y2 cos(x)
  • gtgt figure
  • gtgt subplot(2,1,1)
  • gtgt plot(x,y1)
  • gtgt subplot(2,1,2)
  • gtgt plot(x,y2,or--)

figure(n) apre una finestra grafica con il numero
n.
subplot(nr,nc,k) crea o seleziona il k-esimo
asse, assumendo che la figura sia divisa in nr
righe ed nc colonne.
plot(x,y,stile,) plot del vettore x vs y. stile
è una stringa che definisce il tipo di marker, lo
stile della linea, ed il colore. Vedere lhelp
della funzione plot per i dettagli. Nellesempio
considerato o marker circolare, r linea e
marker di colore rosso, - - linea tratteggiata.
25
Lettura dati FTU ed altro
  • Lettura dati FTU
  • Loggetto vxy
  • Scrittura canali dollaro
  • Varie routine disponibili a Frascati

26
Lettura dati FTU
  • gtgt ip ftudatav(18598,zzzzed.ipl)
  • ip
  • x 1x2048 double
  • y 1x2048 double
  • ud 1x1 struct
  • gtgt ip.ud
  • ans
  • shot 18598
  • ch 'zzzzed.ipl'
  • xl 'TIME '
  • yl 'I PLASMA '
  • xu 's '
  • yu 'A '
  • ier 0

il tempo in questo caso
Uso var ftudatav(nshot, canale) nshot può
essere un vettore di numeri di sparo, e canale
può essere un cellarray di stringhe. gtgt shots
18598,18591 gtgt ip ftudatav(shots,zzzzed.ipl
) gtgt chans e.ecmtmax,
zzzzed.vpl gtgt va ftudatav(18598,chans) va
1x2 vxy object
la corrente
il numero di sparo
Il canale appena letto
Le label e le altre informazioni
27
Oggetti VXY
gtgt te ftudatav(18598,e.ecmtmax) te
x 1x296 double y 1x296 double ud
1x1 struct gtgt ip ftudatav(18598,zzzzed.ipl)
ip x 1x2048 double y 1x2048
double ud 1x1 struct gtgt a te ip a
x 1x1772 double y 1x1772 double
ud gtgt plot(a)
Non sono strutture ma oggetti. Ad esempio
loperazione corrisponde alla
routine DASROOT/matlab/_at_vxy/times.m per
ottenere il risultato si interpolano i due
vettori su una base delle x comune. Anche la
funzione plot corrisponde a DASROOT/matlab/_at_vxy/
plot.m
28
Oggetti VXY creazione
  • Creare oggetti VXY
  • gtgt a vxy oggetto vxy vuoto
  • gtgt a vxy(struttura) una struttura con un
    campo x ed uno y
  • gtgt a vxy(xvect,yvect) due vettori della
    stessa lunghezza
  • gtgt a vxy(xvect,formula) un vettore ed una
    formula funzione di x
  • Esempi
  • gtgt a vxy(1,2,3,4,5,6)
  • gtgt bs.x 1,2,3 bs.y 4,5,6
  • gtgt b vxy(bs)
  • b
  • x 1 2 3
  • y 4 5 6
  • ud
  • gtgt c vxy(0.10.110,sin(x))
  • c
  • x 1x100 double
  • y 1x100 double
  • ud 'sin(x)'

Il campo ud (user data) può contenere dei dati
utente. gtgt b.ud Ciao b x 1 2 3
y 4 5 6 ud 'Ciao' gtgt b.y 7,8,9 ???
Error using gt vxy/subsasgn It is not allowed to
write to the y field gtgt dd b.y dd 4
5 6
29
Oggetti VXY operatori
  • Tutti gli operatori binari principali, non cè
    distinzione tra quelli matriciali e non
  • somma
  • - sottrazione
  • moltiplicazione
  • / divisione
  • elevazione a potenza

La base delle x scelta è lunione delle due basi
x nella zona dove entrambi i dati sono
definiti. Interpolazione lineare di default, ma
può essere cambiata tramite la funzione
setinterpfun.
Tutte i valori di x1 ed x2 nellintervallo di
validità.
30
Oggetti vxy metodi principali
  • Le principali funzioni trigonometriche e
    logaritmiche
  • sin, cos, etc.
  • La funzione plot.
  • Funzioni di calcolo
  • b deriv(a) derivata di a (usa la funzione
    gradient)
  • b integ(a) integrale di a (usa la funzione
    cumtrapz)
  • b mea(a,dx) media mobile di a in un intervallo
    2 dx, se dx è un vettore, media di a negli
    intervalli dx(i), dx(i1).
  • Es
  • gtgt plot(te, mea(te, 0.1,0.2,0.3,0.6,1.4),k')
  • gtgt vline(0.1,0.2,0.3,0.6,1.4),k--)

Per altre informazioni vedere http//fusfis.frasc
ati.enea.it/Software/Unix/FTUdata/Matlab/index.htm
l
31
Oggetto vxy operatore
  • Loperatore in matlab è lunico operatore
    ternario, ovvero può agire su tre oggetti.
  • b av a interpolato ai valori del vettore v (a
    vxy, b vxy, v vettore).
  • b ac a interpolato alle ascisse di c (a vxy, b
    vxy, c vxy).
  • b adx a interpolato a passi dx (a vxy, b vxy,
    dx scalare).
  • b axmnxmx a ma soltanto per le ascisse
    comprese tra xmn e xmx, nessuna interpolazione.
    (a vxy, b vxy, xmn xmx scalari).
  • Attenzione loperatore ha una bassissima
    priorità, mettere sempre le parentesi intorno!!!
    Es
  • gtgt b (a0.50.8)3

Esempio gtgt plot(te, 0.5(te 0.5 1))
32
Oggetti vxy campi fittizi
  • Esempio
  • gtgt a vxy(1,2,3,10,15,12)
  • gtgt a.f(1.5)
  • ans 12.5
  • gtgt a.f(1.5, 1.8, 4)
  • ans 12.5 14 NaN
  • gtgt b vxy(4,5,6,1.5,1.8,4)
  • b x4 5 6
  • y1.5 1.8 4.0
  • ud
  • gtgt c a.f(b)
  • c x 4 5 6
  • y 12.5 14.0 NaN
  • ud
  • gtgt d a1.5,1.8,4
  • d x 1.5000 1.8000
  • y 12.5 14.0
  • ud

Oltre ai campi x, y ed ud esiste il campo
fittizio f che permette di vedere loggetto vxy
come una funzione a.f(vect) valore di a ai
valori di vect. a.f(b) composizione funzionale.
Diverso è il comportamento delloperatore che
ritorna sempre un oggetto vxy sia pure con la
base delle x cambiata. Notare la scomparsa del
NaN.
a
av
33
Oggetti vxy vettori
  • Si possono avere vettori di oggetti vxy se uno
    passa alla ftudatav un lista di spari o una lista
    di canali. Molte delle funzioni viste in
    precedenza operano su vettori di oggetti vxy
  • gtgt te ftudatav(18598,18591,e.ecmtmax)
  • te 1x2 vxy object
  • gtgt plot(te)
  • Per accedere al campo fittizio f mettere ()
    prima del punto
  • gtgt te().f(0.5)
  • Ci sono due funzioni che creano dei cell array di
    canali
  • ftuchan, e ftudaslist.

gtgt ch ftuchan(e.ecmtvt,0.93,0.97,1.0) ch
'e.ecmtvt(0.93)' 'e.ecmtvt(0.97)'
'e.ecmtvt(1)' gtgt te
ftudatav(18598,ch)
gtgt ftudaslist(18598,'zzzz')' ans
'ZZZZED.IPL' 'ZZZZED.VPL'
'ZZZZEE.DCN' 'ZZZZEE.HXR'
'ZZZZEM.IBT'
34
Scrittura canali dollaro
  • La funzione dbput scrive i canali dollaro. Non
    esiste al momento una funzione dbget dedicata
    alla lettura di canali dollaro, questi vanno
    letti tramite la ftudatav.
  • Formato
  • ier dbput(shot, channel, x, y, xlab, ylab,
    xunit, yunit)
  • shot Numero di sparo double
  • channel Canale Stringa (utente.famigliacanale)
  • x Coordinate x vettore o cell Array di vettori
  • y Matrix matrice multidimensionale
  • xlab X label Stringa o cell Array di stringhe.
  • ylab Y label Stringa.
  • xunit X unità di misura Stringa o cell Array of
    stringhe.
  • yunit Y unità di misura Stringa.
  • Esempio 2D
  • gtgt dbput(18598,'giovan.prprova',r,t, z,
    'R0', 'tempo', 'Valore', 'm','s','P')

Matrice z (R lungo le colonne)
R
t
numero di sparo
coordinate in un cell array prima il raggio poi
il tempo
Dati in una matrice rettangolare
utente.famigliacanale
35
Funzioni varie
  • gtgt plot(x,y)
  • gtgt vline(-1,2,4,'k--')
  • gtgt hline(-0.5,0.5,'r')

36
Strumenti per leggi di scala
  • vs2mat trasforma file versus in file matlab
    (.mat). Per file versus di grandi dimensioni e
    con campi di tipo carattere.
  • Esempio
  • ltgiovan_at_efrs10gt vs2mat esemcar.vs
  • gtgt load esemcar
  • gtgt whos
  • Name Size Bytes Class
  • LABEL 1x2 132 cell array
  • ne 1x4 32 double array
  • te 1x4 32 double array
  • tok 1x4 32 double array
  • gtgt tok
  • tok
  • 1 1 2 2
  • gtgt LABEL
  • LABEL
  • 'FTU' 'JET
  • gtgt te
  • te

Per creare file versus dai dati FTU, vedere
totab. (GiovanniBracco)
(Giovanni Bracco) bracco/matlab/analisi_leggi_sc
ala.m
37
Altri Esempi
Per lanalisi dei segnali E.ECPFAST gtgt ecpfastui
38
Altro esempio
gtgt dayshot(23600) 11-Apr-2003 Numero di shot9
Shot iniziale 23596 Shot finale 23604
shot ora scarica durata Btor
Ipl(kA) 23596 1209 PROVA_IMP 0.00
0.00 0 23597 1218 S60M50A06I 0.00
5.88 0 23598 1236 S60M50A06I 1.73
5.92 -497 23599 1259 S60M50A06I 1.73
5.92 -491 23600 1314 S60M90A004
1.75 5.88 -887 23601 1344 S79M80LE03
1.42 7.87 -788 23602 1556 S79M80LE03
1.43 7.86 -788 23603 1621
S79M80LE03 0.00 5.77 0 23604 1643
S79M80LE03 1.40 7.87 -783
39
La Grafica
  • Funzioni Grafiche più complesse
  • Uso degli handle

40
Altre funzioni grafiche
  • Per avere assi logaritmici si usano semilogx,
    semilogy, loglog, I parametri sono quelli della
    funzione plot
  • gtgt semilogy(110,exp(110))
  • per fare dei grafici con le barre di errore usare
    la funzione errobar
  • gtgt errorbar(x, y, dy, stile)
  • gtgt errorbar(x, y, dyl, dyu, stile)
  • Esempio
  • gtgt x 19
  • gtgt y sin(x)
  • gtgt ye abs(rand(1,9))
  • gtgt errorbar(x, y, ye, or--)

41
Sovrapporre grafici
  • Per sovrapporre dei grafici nello stesso asse
    usare il comando hold, che permette di non
    cancellare i grafici già presenti nellasse
    considerato.
  • gtgt hold on
  • gtgt hold off
  • Esempio
  • gtgt x 19
  • gtgt y sin(x)
  • gtgt ye abs(rand(1,9))
  • gtgt errorbar(x, yye/2, ye, o)
  • gtgt hold on
  • gtgt plot(10.19,sin(10.19),k)
  • gtgt hold off

Nota Il comando hold cambia la proprietà
NextPlot dellasse e della figura corrente.
42
Contour plot
  • Le funzioni sono contour, contourf. La funzione
    contourf, si differenzia dalla contour solo
    perché le curve di livello sono riempite. Uso
  • gtgt contour(x, y, z, nc)
  • gtgt pcolor(x, y, z)
  • Se nc è un numero indica il numero di contorni,
    se è un vettore, i livelli a cui devono essere
    disegnati i contorni. Esempio
  • gtgt x 1,2,3,4
  • gtgt y 1,2,3
  • gtgt z 4,5,6,8 6,5,5,7 7,6,5,5
  • z 4 5 6 8
  • 6 5 5 6
  • 7 6 5 5
  • gtgt whos
  • Name Size Bytes Class
  • x 1x4 32 double array
  • y 1x3 24 double array
  • z 3x4 96 double array
  • gtgt contour(x,y,z,20)

Attenzione allorientamento della matrice z. La
coordinata y scorre lungo le colonne.
() x, y crescenti
43
Pseudo color Plot
  • La funzione pcolor ha gli stessi parametri della
    contour (eccetto nc)
  • gtgt z
  • z 4 5 6 8
  • 6 5 5 6
  • 7 6 5 5
  • gtgt pcolor(x,y,z)
  • gtgt shading flat
  • Notare che solo una parte viene mostrata, perché
    il colore della faccia è quello del vertice in
    basso a sinistra. Il comando shading cambia il
    modo in cui vengono colorate le facce. Ha 3
    opzioni faceted, flat, interp.
  • pcolor genera una superficie tridimensionale e la
    fa vedere dallalto.
  • gtgt shading interp

6
5
5
4
5
6
44
Label, leggende, etc.
  • gtgt x00.120
  • gtgt plot(x,sin(x),x,cos(x))
  • gtgt xlabel(Tempo)
  • gtgt ylabel(Valore)
  • gtgt title(Seni e Coseni)
  • gtgt legend(Seno,Coseno)
  • gtgt grid on
  • gtgt ylim(-1.1,1.3)
  • gtgt xlim
  • ans
  • 0 20
  • gtgt axis
  • ans
  • 0 20.000 -1.1000 1.3000

Il comando axis permette di impostare diverse
proprietà dellasse corrente.
45
Gli handle
  • Ogni oggetto grafico ha assegnato un handle,
    ovvero un numero reale che si riferisce a
    quelloggetto.
  • Il numero 0 è lhandle deloggetto root che
    descrive lo schermo e alcune caratteristiche
    generali di matlab.
  • Normalmente gli handle delle figure sono numeri
    interi a partire da 1.
  • Attenzione! Non confondere le figure (che appunto
    hanno gli handle) con le finestre del sistema di
    sviluppo interattivo.

molte funzioni grafiche se chiamate con dei
parametri in uscita, ritornano degli handle agli
oggetti grafici appena creati.
gtgt h figure h 1 gtgt gcf ans 1 gtgt hp
plot(1,2,1,1) hp 3.0010 gtgt gca ans
101.0009
handle della figura è un numero intero
Le due funzioni gcf Get Current Figure gca Get
Current Axes ritornano la figura e lasse corrente
handle della linea disegnata
handle del nuovo asse
46
Le proprietà
  • Tutti gli oggetti grafici hanno delle proprietà
    (tipo lo spessore della linea od il colore per le
    linee, etc.)
  • Gli handle servono per leggere o cambiare le
    proprietà degli oggetti grafici tramite le
    funzioni set e get.

gtgt h plot(110,sin(110)) h 102.0009 gtgt
get(gca,children) ans 102.0009 gtgt set(gcf,
color, yellow) gtgt set(h,
linewidth,5) gtgt set(gca,position,
0.5,0.5,0.4,0.4) gtgt set(gca,fontsize,
20) gtgt get( gcf, gca, h,'type') ans
'figure' 'axes' 'line'
47
Le Proprietà (2)
  • Funzioni per cambiare o leggere le proprietà
  • gcf handle della figura corrente
  • gca handle dellasse corrente
  • set(h,Prop,Val) cambia la proprietà di h
  • get(h,Prop) legge la proprietà di h
  • findobj(h,Prop,Val) trova un oggetto figlio di
    h con la proprietà specificata
  • delete(h) Cancella h
  • get(h) Mostra a schermo tutte le proprietà
    delloggetto h.
  • set(h) Mostra a schermo tutte le possibili
    impostazioni delle proprietà delloggetto h.

Esempio gtgt get(1) Alphamap (1 by
64) BackingStore on CloseRequestFcn
clos Color 1 1 1 Colormap (64 by 3)
gtgt set(1) Alphamap BackingSto
re on off CloseRequestFcn string -or-
function handle -or-
cell array Color Colormap
48
Gerarchia degli oggetti grafici
Ogni oggetto grafico è figlio di un solo genitore
e può avere più di un figlio. Due proprietà
descrivono le relazioni di parentela Children vet
tore con gli handle degli oggetti
figli. Parent handle delloggetto
genitore. Loggetto root non ha genitori. Image,
Light, Line, Patch, Rectangle, Surface, Text non
hanno figli
49
Esempi
Patch
Surface
Rectangle
Text
3D Surface
50
Le principali proprietà comuni
  • Comuni a tutti
  • Type Tipo di oggetto grafico
  • Tag Stringa con un nome per loggetto. Può non
    essere specificato.
  • Visible on off, indica se loggetto è visibile
    oppure no.
  • Parent Handle del genitore. Tranne loggetto
    root.
  • Children Vettore di handle degli oggetti figli.
    Ritorna per gli oggetti che non hanno figli.
  • Clipping on off, per gli oggetti figli degli
    assi specifica se sono visibili solo allinterno
    dellasse genitore.
  • Proprietà comuni a molti oggetti descritte nel
    seguito
  • Posizione
  • Colore
  • Assi
  • Testi

Clipping on
Clipping off
51
Posizione
Comuni a figure, axes, uicontrol, text,
rectangle. Units Unità di misura pixels,
normalized, inches, centimeters, points,
characters, data (solo per loggetto text).
Loggetto rectangle non ha questa
proprietà. Position vettore di 4 componenti
Left, Bottom, Width, Height (vettore di 3
componenti per loggetto text, vedere in seguito).
Unità di misura normalized da 0 a 1. Punto (0,0)
in basso a sinistra, (1,1) in alto a
destra. characters larghezza della lettera x,
altezza pari a quella tra due linee di testo.
La posizione degli altri oggetti è specificata
rispetto agli assi nelle unità data. Proprietà
XData, YData, ZData
52
Colore
Colormap
R
G
B
Colore
indice
RGB Nomi corti Nomi lunghi
1 1 0 y yellow
1 0 1 m magenta
0 1 1 c cyan
1 0 0 r red
0 1 0 g green
0 0 1 b blue
1 1 1 w white
0 0 0 k black
53
Colormap
  • gtgt pcolor(magic(4))
  • gtgt shading interp
  • gtgt colorbar
  • gtgt colormap(jet)
  • gtgt colormap(gray)
  • gtgt jet
  • ans
  • 0 0 0.5625
  • 0 0 0.6250
  • ...
  • 0 1.0000 1.0000
  • 0.0625 1.0000 1.0000
  • ...
  • 0.6250 0 0
  • 0.5625 0 0

Matrice nx3
54
Proprietà di un asse
gtgt plot(14,101040) gtgt set(gca,Xgrid,on) gtgt
set(gca,XMinorTick,on) gtgt set(gca,XTickLabel
, uno,due,tre,quattro) gtgt
set(gca,YTick,17,27,37) gtgt set(gca,FontSize,
12) gtgt get(gca,XLim) ans 1 4
YTick
XGrid
Le funzioni axis, xlim, ylim permetto comunque di
impostare molte delle proprietà degli assi.
XMinorTick
XTickLabel
55
Text
Si aggiunge del testo ad un grafico con le
funzione xlabel, ylabel, title, oppure con la
funzione text. La posizione è specificata con un
vettore di due o tre numeri. Leffettiva
posizione del testo è data dalla proprietà
extent. Le proprietà HorizontalAlignment e
VerticalAlignment influenzano la posizione
dellextent.
gtgt plot(x,y) gtgt h text(0.3,0.5,'Ciao!
Argh!','fontsize',24) gtgt line(0.3,0.5,'Marker','
','Color','r') gtgt rectangle('pos',get(h,'Extent'))
gtgt get(h,VerticalAlignment) middle
extent
posizione
Un sottoinsieme del TeX permette di avere
sottoscritti, sovrascritti, caratteri greci ed
altri simboli. gtgt text(0.3,0.5,'CiaoCiao_\alpha
','fontsize',24)
56
Appendici
  • Proprietà delle linee (presenti in vari oggetti)
  • Le principali proprietà delloggetto root
  • Le principali proprietà delle figure
  • Le principali proprietà degli assi
  • Delloggetto line

57
Proprietà delle linee
  • Gli oggetti line, patch, surface hanno delle
    proprietà legate alle linee che li compongono
  • LineStyle Stile della linea
  • LineWidth Larghezza della linea (0.5)
  • Marker Tipo di Marker
  • MarkerEdgeColor Colore none auto flat
  • none trasparente
  • auto colore delle linee che connettono i
    marker.
  • flat colore del vertice.
  • MarkerFaceColor Colore none auto flat
  • none trasparente
  • auto colore del background (asse o finestra)
  • flat colore del vertice.
  • MarkerSize Dimensione del marker
  • Solo patch e surface

Stile delle linee Simbolo Stile - solid line
(default) -- dashed line dotted
line -. dash-dot line none no line
Tipo di Marker Marker Description plus
sign o circle asterisk . point x cross s square
d diamond upward pointing triangle v downward
pointing triangle gt right pointing
triangle lt left pointing triangle p five-pointed
star (pentagram) h six-pointed star
(hexagram) none no marker (default)
58
Le principali proprietà di root
  • Units Le solite, di default pixels.
  • ScreenSize Left,Right,Width,Height, dimensioni
    dello schermo, ovviamente Left e Right valgono 0
    per tutte le unità eccetto che per pixels che
    valgono 1.
  • PointerLocation x, y, posizione del mouse
    nelle unità correnti.
  • ShowHiddenHandles on,off, di default off.
    Rende visibili tutti gli handle, anche quelli
    nascosti. (Ad esempio per gli axes, gli handle
    nascosti sono quelli associati al titolo ed alle
    label, anche se sono comunque raggiungibili con
    altre proprietà).
  • gtgt get(0,ScreenSize)
  • ans 1 1 1280 1024
  • gtgt get(0,PointerLocation)
  • ans 843 392

59
Le principali proprietà delle figure
  • Units Le unità di misura. Di default pixels.
  • Position La posizione rispetto allo schermo
  • Color Il colore di sfondo della figura.
  • ColorMap La colormap impostata. Generalmente si
    usa la funzione colormap per impostarla.
  • CurrentObject Loggetto corrente, ritornato da
    gco.
  • DoubleBuffer permette semplici animazioni senza
    lampeggiamenti.
  • IntegerHandle on off, specifica se lhandle
    della figura deve essere intero.
  • Name Nome della figura che appare nel barra del
    titolo.
  • NumberTitle Specifica se nella barra del titolo
    deve apparire Figure No. n
  • Pointer La forma del mouse quando passa sulla
    figura Orologio, freccia, etc.

Proprietà che specificano le caratteristiche
della carta per la stampa o la esportazione delle
figure PaperOrientation, PaperPosition,
PaperPositionMode, PaperSize, PaperType,
PaperUnits. Per esportare correttamente la figura
in modo che appaia come sullo schermo
impostare PaperType A4 PaperOrientation
Portrait PaperPositionMode auto
60
Le principali proprietà degli assi
  • Units Le unità di misura. Di default normalized.
  • Position La posizione rispetto alla figura.
  • Box on off. Traccia un box intorno al grafico.
  • Clim cmin, cmax Minimo e massimo sullasse dei
    colori.
  • ClimMode auto manual. Calcolo automatico o
    manuale dellasse dei colori.
  • Color Colore dello sfondo del grafico.
  • ColorOrder matrice nx3 che indica nel plot la
    sequenza del colore delle linee.
  • DataAspectRatio dx, dy, dz Vettore con
    laspect ratio per le unità di misura degli assi
    (Vedere comando axis). Mode.
  • PlotBoxAspectRatio dx,dy,dz Vettore con
    laspect ratio del plot. Mode.
  • Linewidth Larghezza delle linee del grafico.
  • FontSize Dimensione delle font usate.
  • FontUnits Unità di misura delle Font usate. Di
    default point.
  • Title handle di un oggetto text con il titolo del
    grafico.

61
Proprietà del singolo asse (X,Y o Z)
  • XAxisLocation top bottom (left right per
    lasse Y).
  • XColor Colore dellasse. Di default nero.
  • XDir normal reverse in senso crescente o
    viceversa.
  • XGrid on off. Se è presente la griglia
    principale
  • XLabel handle ad un oggetto text con la label.
    Usare la funzione xlabel.
  • XLim min, max. Vettore con i due estremi. Usare
    la funzione xlim.
  • XLimMode auto manual Se auto gli estremi del
    grafico sono calcolati automaticamente.
  • XMinorGrid on off
  • XMinorTick on off
  • XScale linear log Lasse è lineare o
    logaritmico.
  • XTick x1,x2, un vettore con le posizioni dei
    tick.
  • XTickMode auto manual Se auto la posizione dei
    tick è calcolata automaticamente.
  • XTickLabel Una matrice di stringhe con le label
    assegnate ad ogni tick.
  • XTickLabelMode auto manual Se auto le label
    sono calcolate automaticamente.

gtgt plot(14,101040) gtgt set(gca,Xgrid,on) gtgt
set(gca,XMinorTick,on) gtgt set(gca,XTickLabel
, uno,due,tre,quattro) gtgt
set(gca,YTick,17,27,37)
YTick
XGrid
XMinorTick
XTickLabel
62
Principali proprietà di line
  • Proprietà generali delle linee (Marker,
    Linewidth, etc.)
  • Color Colore della linea
  • XData, YData, ZData Vettori con le coordinate x,
    y, z
  • Esempio
  • gtgt x 00.21
  • gtgt y sin(3x)x
  • gtgt h plot(x,y,ob)
  • gtgt get(h,XData)
  • ans 0 0.20 0.40 0.60 0.80 1.00
  • gtgt get(h,Marker)
  • ans o
  • gtgt get(h,LineStyle)
  • ans --
  • gtgt get(h,Color)
  • ans 0 0 1

63
Esempio (1) per ?
Esempio per stuzzicare l'appetito shot
18598 te ftudatav(shot,'e.ecmtmax') ne
ftudatav(shot,'co2dens')/1e20 ne
ne01.5 pe tene hf figure(1) hf e'
uguale ad 1 set(hf,'color','white') set(hf,Defau
ltAxesFontSize',12)
riga di commento, tutti i commenti iniziano con
. nella variabile shot viene inserito il numero
di sparo. vengono lette sia la temperatura che
la densità, la densità viene divisa per
1e20. per la densità si prendono solo i tempi
tra 0 e 1.5. La pressione è ottenuta come il
prodotto tra densità e temperatura. Visto che sia
te che ne sono degli oggetti vxy viene effettuata
automaticamente una interpolazione sui tempi
comuni. si crea o si seleziona la figura 1. hf è
lhandle della figura il cui valore in questo
caso è proprio 1. Si imposta il colore dello
sfondo della figura e si imposta la dimensione di
default dei font per assi che saranno creati
successivamente
64
? Esempio (1) per ?
subplot(3,1,1) plot(te) ylabel('T_e
(keV)') title('Shot ' num2str(shot)) subp
lot(3,1,2) plot(ne) ylim(max(0,ylim)) ylabel('n_
e (1020m-3)')
Si seleziona il primo asse dei tre che si
vogliono si grafica la temperatura, si mette una
label sullasse y con ylabel. Il formato della
label utilizza un sottoinsieme del TeX, il
carattere _ significa che il carattere successivo
và sottoscritto. Si aggiunge un titolo al primo
asse che appare in alto nella figura. La funzione
num2str trasforma un numero in una stringa che
viene concatenata con Shot . Si seleziona il
secondo asse e si grafica la densità. I limiti
sullasse y vengono prima letti con la funzione
ylim poi si prende il massimo tra 0 ed i valori
letti, poi si reimpostano. Si aggiunge una label
sullasse y. Nel sottoinsieme del TeX il
carattere significa che il carattere successivo
va sovrascritto. Le parentesi graffe raggruppano
una serie di caratteri.
65
? Esempio (1) per .
subplot(3,1,3) plot(pe) ylim(max(0,ylim)) ylab
el('p_e (keV 1020m-3)') xlabel('t
(s)') joinaxes
Si seleziona il terzo asse e si grafica la
pressione. I limiti sullasse y vengono prima
letti con la funzione ylim poi si prende il
massimo tra 0 ed i valori letti, poi si
reimpostano. Si aggiunge una label sullasse y.
, ed una label sullasse x. I grafici si
attaccano in modo da venire uno sopra allaltro.
Inoltre se fa lo zoom su un grafico, anche lasse
degli altri si modifica in corrispondenza.
Write a Comment
User Comments (0)
About PowerShow.com