Untitled
unknown
matlab
10 months ago
1.9 kB
9
Indexable
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;
];
Editor is loading...
Leave a Comment