Vous êtes sur la page 1sur 10

Université Sultan Moulay Slimane | FST Béni Mellal

Master Géomatique Envirennementale


Module Outils de programmation | Analyse de données
Pr. Abdelghani Boudhar (ab.boudhar@usms.ma) | 2022
TP_OUTILS_DE_PROGRAMMATION_2EME_PARTIE

I.importation des données:


clc,clear,close all
path='C:\Users\S.OUSSAOUI\Desktop\MASTER\Outil de programmation\';
% cd permet pour matlab de positionner sur le path
cd(path);
xlfile='Temperature.xlsx';
% concatination de deux chaines de charactere
namefxl=[path,xlfile];
DTable=readtable(namefxl);
Tair=DTable{:,(2:5)} ;% afficher les valeurs sans entete
vtime=DTable.Date;
ts1=DTable.IMESKER;
ts2=DTable.ARMED;
ts3=DTable.TACHDERT;
ts4=DTable.NELTNER;
ts5=DTable.OUKASM;

II.Structure if...else...end , boucle for...end


1. afficher les enregistrements d'une station :

a=input("merci d'entrer le nombre de station ") % donner à la variable une valeur numerique

a = 5

if a==1 % si la premiere condition est valide


disp('votre choix est la station de IMESKER') % afficher ce text
elseif a==2 % si la 1er codition n'est pas valid verifier
disp('votre choix est la station de ARMED') % si la 2 eme est valid affiche ce text
elseif a==3 % .
disp('votre choix est la station de TACHDERT')% .
elseif a==4 % .
disp('votre choix est la station de NILTEN ') % .
elseif a==5 % .
disp('votre choix est la station de okacem') % .
else % si aucune des condition n'est valide
msgbox('nombre de station est introuvable') % afficher le text 'station introuvable'
end

votre choix est la station de okacem

1
Les_valeurs_de_station_choisie=DTable{:,a}

Les_valeurs_de_station_choisie = 244×1
9.4102
6.3155
5.6664
12.9612
12.5817
9.6827
10.6445
11.1224
8.0913
7.6064

2. trouver le nombre de jours froids, normales, chauds de la station 1:

s1=7;
s2=15;
st1=DTable{:,2}; % station 1
n=length(st1); % langueur de la station 1
jc=0; % jour chaud
jf=0; % jour froid
jn=0; % jour normal
for i=1:n;
if st1(i)>=s2
i=i+1;
jc=jc+1;
elseif st1(i)<s1
i=i+1;
jf=jf+1;
elseif st1(i)>s1 & st1(i)<s2
i=i+1;
jn=jn+1 ;
end
end
x=["nombre des jours chaud :",jc]

x = 1×2 string
"nombre des jours chaud :" "154"

y=["nombre des jours froid :",jf]

y = 1×2 string
"nombre des jours froid :" "3"

z=["nombre des jours normal :",jn]

z = 1×2 string
"nombre des jours normale :" "87"

3. trouver le nombre de jours froids, normales, chauds de toutes les station :

s1=10;
s2=20;

2
jour_froid=0;
jour_chaud=0;
jour_normal=0;
date_froid=0;
date_chaud=0;
date_normale=0;
vtime=DTable.Date;
for i =(2:6);
t=DTable{:,i};
for j=1:length(DTable.IMESKER);
if t(j)<=s1;
j=j+1;
jour_froid=jour_froid+1;
date_froid=[date_froid;vtime(j)];
elseif t(j)<s2 & t(j)>S1;
j=j+1;
jour_normal=jour_normal+1;
date_normale=[dat];
elseif t(j)>=s2;
j=j+1;
jour_chaud=jour_chaud+1;
date_chaud=[date_chaud;vtime(j)];
end
end
end

Error using datetime/vertcat (line 1394)


All inputs must be datetimes or date/time character vectors or date/time strings.

III. Fonctions
% function [minimum,maximum,somme, moyen,mediane,ecarttype,...
% intervalle,le_mode,variance,diagramme,boit_a_mostache]= fstatsabir(X)
% minimum= min(X)
% maximum= max(X)
% somme =sum(X)
% moyen=mean(X)
% mediane =median(X)
% ecarttype=std(X)
% intervale =max(X)-min(X)
% le_mode=mode(X)
% variance=var(X)
% boit_a_moustache=boxplot(X)
% end

v=1:13:10000 % vecteur simple de 1-->10000 avec un pas de 13

v = 1×770
1 14 27 40 53 66 79 92 105 118 131 144 157

length(v) % langueur de v

ans = 770

3
fstatsabir(v) % application de la fonction

minimum = 1
maximum = 9998
somme = 3849615
moyen = 4.9995e+03
mediane = 4.9995e+03
ecarttype = 2.8915e+03
intervale = 9997
le_mode = 1
variance = 8.3609e+06

boit_a_moustache = 7×1
0.0004
1.0004
2.0004
3.0004
4.0004
5.0004
6.0004
ans = 1

IV. traitement des images


matrice=[2,23,12,4,12;1,43,6,7,6;9,4,4,12,1] % déclarer un matrice

matrice = 3×5
2 23 12 4 12
1 43 6 7 6
9 4 4 12 1

a=imagesc(matrice) % afficher la matrice suus forme image

4
a =
Image with properties:

CData: [3×5 double]


CDataMapping: 'scaled'

Show all properties

figure(1)
m=[2,23,12,4,12;1,43,6,7,6;9,4,4,12,1]

m = 3×5
2 23 12 4 12
1 43 6 7 6
9 4 4 12 1

% map=[0.9 0.6 0.5 % personalisé les couleur d'affichage


% 0.7 0.5 0.9 % les 3 colonnes de map concerne le degre de RGB
% 0.5 0.7 0.2 % les lignes presentent le nombre de classe de l'affichage
% 0.9 0.8 0.2]
% colormap(map)

load("MNT.mat") %importer MNT


imagesc(MNT) %afficher mnt sous forme d'image
colormap("hsv") %coleur de l'image

5
histogram(MNT,'EdgeColor','g')
xlabel('Altitude');ylabel('Effectifs');title('effectifs des altitudes de MNT')

6
boxplot(MNT')
xlabel('les colonnes ');ylabel('Altitudes ');title('boxplote du MNT ')

7
plot(MNT(200,:),'LineWidth',2,'Color','g')
xlabel('nombre de colonnes ')
ylabel('Altitudes ')
title("la variation d'altitudes d'un seul ligne ")

% CLASSIFICATION DE L'IMAGE
step=300;
min_mnt=min(min(MNT)) ; %la valeur minimale du MNT
max_mnt=max(max(MNT)) ; %la valeur maximale du MNT
vtr=[min_mnt:step:max_mnt] ; %l'intervalle de chaque tranche
for i =1:length(vtr) %i=1--->nombre de tranche
if i<length(vtr)-step
tr=(MNT>=vtr(i) & MNT<vtr(i+1));
NP(i)=sum(sum(tr));
else
tr=(MNT>=vtr(i)) ;
NP(i)=sum(sum(tr));
end
DemTr{:,i}=MNT(tr);
labTr=strcat('zone',num2str(i)) % il faut calculer labTr(i) mais il affiche un erreur
altmoy(i)=mean(mean(MNT(tr)));
altmax(i)=max(max(MNT(tr)));
altmin(i)=min(min(MNT(tr)));
end

labTr =

8
'zone1'
labTr =
'zone2'
labTr =
'zone3'
labTr =
'zone4'
labTr =
'zone5'
labTr =
'zone6'
labTr =
'zone7'
labTr =
'zone8'
labTr =
'zone9'
labTr =
'zone10'
labTr =
'zone11'
labTr =
'zone12'
labTr =
'zone13'

bar(vtr,NP)
xlabel('Zone Elevation (Meters)')
ylabel('totale des pixels')
title (labTr)

9
T=table(altmin',altmax',altmoy','VariableNames',{'MIN','MAX','MOY'}) % rownames= 13 tr

T = 13×3 table
MIN MAX MOY

1 314 4131 1.1047e+03


2 614 4131 1.5242e+03
3 914 4131 1.9478e+03
4 1214 4131 2.1678e+03
5 1514 4131 2.3988e+03
6 1814 4131 2.5791e+03
7 2114 4131 2.7956e+03
8 2414 4131 3.0059e+03
9 2714 4131 3.1914e+03
10 3014 4131 3.3697e+03
11 3314 4131 3.5493e+03
12 3614 4131 3.7459e+03
13 3914 4131 3.9664e+03

10

Vous aimerez peut-être aussi