Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Informatica per Scienze Geologiche LT a.a.2017-2018
Introduzione all’utilizzo di metodologie informatiche nella Geologia Parte B Docente: Prof. Carla Braitenberg, Dipartimento Matematica e Geoscienze, Via Weiss 1, Università di Trieste Tel
2
Inizializzazione di array con valori costanti
»o=ones(1,10) Vettore riga, con 10 elementi, pari a 1. »z=zeros(23,1) Vettore colonna con 23 elementi, pari a 0 »r=rand(1,45) Vettore riga, 45 elementi (numeri casuali compresi nell’intervallo [0,1]) »n=nan(1,69) Vettore riga di valori NaN (utile per definire variabili non-inizializzate)
3
Inizializzazione automatica
Creare array di valori equi-distanziati >> x=linspace(0,10,5) Da 0 a 10 (incluso), con 5 valori Equivalente, ma diamo l’intervallo: >>x1 = 0:2:10 Da 0 a 10 (minore o uguale), intervallo pari a 2 >> x2 = 0:10 Se non viene specificato l’intervallo, viene assunto intervallo pari 1 Intervallazione logaritmica: logspace >> x=logspace(1,4)
4
Indirizzamento di un array
Definito un array c, vorremo indirizzare il contenuto. c=[ ] c(1) c(2) c(3) c(4) L’indirizzo puo’ essere uno scalare oppure un vettore. Se vettore, il risultato e’ della stessa lunghezza. z=[ ] a=z(1:3) b=z(3:end)
5
Indicizzazione di array bidimensionali
Un array 2D (o detta anche matrice) puo’ essere indicizzata dalle posizioni di riga e colonna, oppure da un indice lineare unico che segue una numerazione ben definita e codificata degli elementi dell’array. L’indice cresce lungo le colonne, partendo dalla prima colonna. La selezione di una parte di una matrice avviene selezionando un intervallo di indici: >> A=rand(6) % matrice 6 x 6 di numeri casuali >> B=A(1:3,1:2) % seleziona la parte superiore sinistra >> C=A([1 4 6],[1 3 4]) % seleziona alcune righe e colonne
6
Selezionare colonna e riga completa di un array
>> A=rand(3) A = >> B=A(2, :) B = >> C=A(:,2) C = 0.7537 0.3804 0.5678
7
Indicizzazione secondo criteri logici
E’ possibile definire gli indici su base di risultati di un criterio di ricerca sui valori dell’array oppure su ricerche applicate sugli indici stessi. Esempio: L’array Temperatura(4,1200) sia un array contenente la data (anno, mese, giorno) e la temperatura misurata in una stazione per un periodo di diversi anni. Vorremmo selezionare le date nelle quali la temperatura sia stata maggiore di 35°C, minore di -10°C, e vorremmo trovare la data della temperatura piu’ bassa in tutto l’intervallo di tempo. Illustriamo i comandi di linea su un array monodimensionale di prova. Si potranno poi applicare gli stessi comandi al problema della temperatura o ad altro problema analogo.
8
Indicizzazione secondo criteri logici
test =[ ] Per il valore minimo e massimo, e relativo indice: [minT, minK]=min(test) ; [maxT, maxK]=min(test); Per trovare gli indici dei valori maggiori o uguali una data soglia: K=find(test ==18) Per trovare gli indici nel quale i valori sono nella norma: Kmedia= find (test >18 & test < 28]
9
Grafico di una sequenza
Un grafico di una serie di valori, come quelli della temperatura richiede una serie di coppie di valori, x e y. >>x=linspace(0,20,20); >>y=3*sin(2*pi/ 10 *x); >>plot(x,y); >>title('Sinusoide'); >>xlabel('x(m)’; >>ylabel('y(m)');
10
Dalla scheda precedente.
Per migliorare il grafico, e’ necessario aumentare la lnghezza del vettore x ed y. Attenzione: x,y devono essere array della stessa lunghezza.
11
Esercizio livello acqua nell’Abisso di Trebiciano
Anni di osservazione: , un campione ogni ora. Unita’ di misura: m sopra il livello del mare. Caricare il file. Nome dell’array: liv_Trebiciano load('livello_AbissoTrebiciano_Tdec.mat'); Determinare valore medio, valore massimo e data del valore massimo Comandi necessari: max(livello_tdec): cerca il massimo sulla quinta colonna, comprendente il livello. mean(livello_tdec) std(livello_tdec)
12
%Max_TrebicianoWater
%read the data file and find extreme value. load('livello_AbissoTrebiciano_Tdec.mat'); liv=livello_tdec; % contains the workspace liv_Trebiciano with year, month, day hour, value n=length(liv(:,1)); % extreme value [xmax, kmax] = max(liv(:,6)); tmax=liv(kmax,2:4); disp([' max value at ' ,num2str(tmax),' value= ', num2str(liv(kmax,6)),'m']); media=mean(liv(:,6)); scarto= std(liv(:,6)); disp(['average ' ,num2str(media),'m',' std= ', num2str(scarto),'m' ] );
13
Continua il programma: qui la parte che crea il grafico
figure; plot(liv(:,1),liv(:,6)) title('Livello acqua nel pozzo Abisso Trebiciano'); xlabel('tempo in anni'); ylabel('livello (m)');
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.