Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %% Initialisation
- % Limité à l'ordre 4 pour des problèmes de mémoires
- close all
- clc
- tic
- cheminLecture = 'bayes.txt';
- nb = 8;
- fichierLecture = fopen(cheminLecture, 'r');
- donnee = [];
- ligneN = zeros(1,nb);
- facteurs = [1 1 1 0.5 0.5 0.4 1/30 1]; % permet de réduire la mémoire utilisée et donc d'augmenter l'ordre
- while(~feof(fichierLecture))
- ligneS = split(fgets(fichierLecture));
- for i=1:nb
- ligneN(i) = uint16(str2num(ligneS{i})*facteurs(i));
- end
- donnee = [donnee; ligneN];
- end
- fclose(fichierLecture);
- toc
- %% Vérifications de l'intégrité des données
- Minima = min(donnee);
- Maxima = max(donnee);
- dims = Maxima-Minima+1;
- for i = 1:nb
- figure
- plot(donnee(:,i))
- title(num2str(i))
- end
- % on seuil à 100 pour les rafales de vent afin de réduire la dimension
- %% Création de la matrice de densité de probabilité
- tic
- close all
- D = {};
- for i = 1:nb
- D{end+1} = zeros(dims(i),dims(i),dims(i),dims(i),dims(i));
- end
- for i = 5:size(donnee,1)
- for n = 1:nb
- D{n}(donnee(i-4,n)-Minima(n)+1,donnee(i-3,n)-Minima(n)+1,donnee(i-2,n)-Minima(n)+1,donnee(i-1,n)-Minima(n)+1,(donnee(i,n)-Minima(n)+1):dims(n)) = D{n}(donnee(i-4,n)-Minima(n)+1,donnee(i-3,n)-Minima(n)+1,donnee(i-2,n)-Minima(n)+1,donnee(i-1,n)-Minima(n)+1,(donnee(i,n)-Minima(n)+1):dims(n))+1;
- end
- end
- for n = 1:nb
- for i =1:dims(n)
- for j =1:dims(n)
- for k =1:dims(n)
- for p =1:dims(n)
- if(D{n}(i,j,k,p,dims(n))~=0)
- D{n}(i,j,k,p,:) = D{n}(i,j,k,p,:)/D{n}(i,j,k,p,dims(n));
- end
- end
- end
- end
- end
- end
- toc
- %% Test
- tic
- nbDonnee = 20;
- nbTest = 100000;
- test = uint16([[4 12 17 1020 11 22 170 0];[4 15 18 1018 14 22 110 0];[4 18 15 1018 14 29 90 0];[4 21 11 1019 14 22 60 0]].*facteurs);
- resultatN = zeros(1,nb);
- resultat = zeros(nbTest, nbDonnee+4, nb);
- for j = 1:nbTest
- resultat(j,1:4,:) = test;
- for t = 4:nbDonnee+3
- randoum = rand(nb,1);
- for i =1:nb
- resultatN(i) = Minima(i)+sum(D{i}(resultat(j,t-3,i)-Minima(i)+1,resultat(j,t-2,i)-Minima(i)+1,resultat(j,t-1,i)-Minima(i)+1,resultat(j,t,i)-Minima(i)+1,:)<randoum(i));
- end
- resultat(j,t+1,:) = resultatN;
- end
- end
- for t = 1:nbDonnee+4
- for j = 1:nbTest
- for i =1:nb
- resultat(j,t,i) = resultat(j,t,i)/facteurs(i);
- end
- end
- end
- for i = 3:nb
- figure
- histogram(resultat(:,end,i))
- end
- resultatAttendu = [[4 3 11 1027 11 14 10 0];[4 6 11 1027 14 18 20 0];[4 9 19 1027 7 18 20 0 ]];
- resultat3d = mean(resultat(:,end-2:end,:));
- distan = norm(resultatAttendu(:,[1,2,3,4,5,6,8])-reshape(resultat3d(1,:,[1,2,3,4,5,6,8]),3,7))
- toc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement