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.1 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
- test = uint16([[1 6 8 1015 26 61 320 4];[1 9 7 1018 30 46 320 0];[1 12 9 1018 30 50 300 0];[1 15 8 1018 26 46 310 0]].*facteurs);
- randoum = rand(nb,1);
- resultat = zeros(1,nb);
- for j = 1:50
- for i =1:nb
- resultat(i) = Minima(i)+sum(D{i}(test(end-3,i)-Minima(i)+1,test(end-2,i)-Minima(i)+1,test(end-1,i)-Minima(i)+1,test(end,i)-Minima(i)+1,:)<randoum(i));
- end
- test = [test; resultat];
- end
- for i =1:nb
- resultat(i) = test(end,i)/facteurs(i);
- end
- resultat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement