I did nothing but removed the loop and tried to make code clearer.
threshold = 150; %limite maximo de ruido
[m,n,p] = size(noise) ;
data = reshape(noise,m*n,p) ; % make 3D a 2D vector
tooNoisy = data >= threshold; % get the logical indices obeying
percentageofarea = sum(tooNoisy)*100/(m*n);
percentageoftime = (1:p)*100/p;
figure; area(percentageoftime, percentageofareavector); % you need to think about this line use area? or histogram?
xlabel('% of time'); ylabel('% of area');
title(['% of time vs % of area ', num2str(threshold),'dB is exceeded']);