Untitled
function accessiPerOra = calcolaNumeroAccessiOrari(matriceAccessi) accessiPerOra = zeros(1,12); % accessiPerOra = [0 0 0 0 0 0 0 0 0 0 0 0] for i = 1:size(matriceAccessi, 1) minuti = matriceAccessi(i,2); ora = floor(minuti/ 60) + 7; if ora >= 7 && ora < 19 accessiPerOra(ora-6) = accessiPerOra(ora-6) +1; end end end function [orePicco, accessiMedi, oreMinimo] = calcolaPicco(accessiPerOra) %accessiPerOra = [10 25 30 15 20 18 12 8 5 15 22 14]; % Indice: 1 2 3 4 5 6 7 8 9 10 11 12 % Ora reale: 7 8 9 10 11 12 13 14 15 16 17 18 maxAccessi = max(accessiPerOra); % 30 orePicco = find(accessiPerOra == maxAccessi); orePicco = orePicco + 6; accessiMedi = mean(accessiPerOra); minAccessi = min(accessiPerOra); oreMinimo = find(accessiPerOra == minAccessi) + 6; end load('acessiAreaC.mat', 'giorno1', 'giorno2'); function datiValidi = verificaDati(matrice) if size(matrice, 2) ~= 2 reeturn false; end oreValidi = matrice(:, 2) >= 0 & matrice(:, 2) <= (19-7) *60; matrice = matrice(oreValidi, :); return true; end if ~verificaDati(giorno1) || ~verificaDati(giorno2) print('Dati non validi nelle matrici di input'); end accessiOra1 = calcolaNumeroAccessiOrari(giorno1); accessiOra2 = calcolaNumeroAccessiOrari(giorno2); [orePicco1, mediaAccessi1, oreMin1] = calcolaPicco(accessiOra1); [orePicco2, mediaAccessi2, oreMin2] = calcolaPicco(accessiOra2); ore = 7:18; %[7 8 9 10 11 12 13 14 15 16 17 18] accessiOra1 = [10 15 30 25 20 18 12 8 5 15 22 14]; accessiOra2 = [12 18 25 28 22 15 10 7 6 18 20 12]; plot(ore, accessiOra1, 'b-', ore, accessiOra2, 'r--') xlabel('Ora del giorno') ylabel('Numero di accessi') title('Accessi Area C') legend('Giorno 1', 'Giorno 2') grid on matriceAccessi = [ 1234, 30; 5678, -10; 9012, 95; 3456, 800; 7890, 85; ];
Leave a Comment