Advertisement
Guest User

bayes.m

a guest
Apr 24th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.20 KB | None | 0 0
  1. %% Initialisation
  2.  
  3. % Limité à l'ordre 4 pour des problèmes de mémoires
  4.  
  5. close all
  6. clc
  7.  
  8. tic
  9.  
  10. cheminLecture = 'bayes.txt';
  11. nb = 8;
  12. fichierLecture = fopen(cheminLecture, 'r');
  13.  
  14. donnee = [];
  15. ligneN = zeros(1,nb);
  16. 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
  17.  
  18. while(~feof(fichierLecture))
  19.     ligneS = split(fgets(fichierLecture));
  20.     for i=1:nb
  21.         ligneN(i) = uint16(str2num(ligneS{i})*facteurs(i));
  22.     end
  23.     donnee = [donnee; ligneN];
  24. end
  25.  
  26. fclose(fichierLecture);
  27.  
  28. toc
  29.  
  30. %% Vérifications de l'intégrité des données
  31. Minima = min(donnee);
  32. Maxima = max(donnee);
  33. dims = Maxima-Minima+1;
  34.  
  35. for i = 1:nb
  36.     figure
  37.     plot(donnee(:,i))
  38.     title(num2str(i))
  39. end
  40.  
  41. % on seuil à 100 pour les rafales de vent afin de réduire la dimension
  42.  
  43. %% Création de la matrice de densité de probabilité
  44.  
  45. tic
  46. close all
  47. D = {};
  48.  
  49. for i = 1:nb
  50.     D{end+1} = zeros(dims(i),dims(i),dims(i),dims(i),dims(i));
  51. end
  52.  
  53. for i = 5:size(donnee,1)
  54.     for n = 1:nb
  55.         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;
  56.     end
  57. end
  58.  
  59. for n = 1:nb
  60.     for i =1:dims(n)
  61.         for j =1:dims(n)
  62.             for k =1:dims(n)
  63.                 for p =1:dims(n)
  64.                     if(D{n}(i,j,k,p,dims(n))~=0)
  65.                         D{n}(i,j,k,p,:) = D{n}(i,j,k,p,:)/D{n}(i,j,k,p,dims(n));
  66.                     end
  67.                 end
  68.             end
  69.         end
  70.     end
  71. end
  72.  
  73. toc
  74.  
  75. %% Test
  76.  
  77. 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);
  78.  
  79. randoum = rand(nb,1);
  80.  
  81. resultat = zeros(1,nb);
  82.  
  83. for j = 1:50
  84.     for i =1:nb
  85.         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));
  86.     end
  87.     test = [test; resultat];
  88. end
  89.  
  90. for i =1:nb
  91.         resultat(i) = test(end,i)/facteurs(i);
  92. end
  93.  
  94. resultat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement