VERB_code_2.3
NormDiff.m
1 function [ND, ave_ND, max_ND] = NormDiff(new_PSD1, new_PSD2, norm_dim)
2 
3 it = 1;
4 
5 if (false)
6 
7  new_PSD1_log = log10(new_PSD1);
8  new_PSD2_log = log10(new_PSD2);
9 
10  difference = (new_PSD2_log - new_PSD1_log);
11  %%%%%% normalization = max(abs(new_PSD2_log) + abs(new_PSD1_log), [], 2)/2
12 
13  normalization = max(new_PSD2_log + new_PSD1_log, [], norm_dim)/2;
14  %%% normalization = max(new_PSD2_log, [], 2)
15 
16  %%%%%% normalization = max(abs(new_PSD2_log), [], 2)
17 
18  normalization = normalization*(ones(size(new_PSD1_log,2),1))';
19 % psd_min_limit = PSD_min;%max(max(max(normalization)))-1e4;
20  normed_difference = difference ./ normalization .* 100;
21 
22  max_normed_ondim_difference(it) = max(max(abs(normed_difference))); % max, %
23  ave_normed_ondim_difference(it) = sum(sum(abs(normed_difference)))/(size(normed_difference, 1) * size(normed_difference, 2)); % average, %
24 
25  max_normed_onarea_difference(it) = max(max(abs(difference)/max(max(abs(new_PSD2_log) + abs(new_PSD1_log)))*2)) * 100; % max(dif/max(sum/2))*100%
26  ave_normed_onarea_difference(it) = sum(sum(abs(difference)/max(max(abs(new_PSD2_log) + abs(new_PSD1_log)))*2)) / (size(new_PSD1_log,1)*size(new_PSD1_log,2)) * 100; % sum(dif/max(sum/2))/area * 100%
27 
28  max_normed_onpoint_difference(it) = max(max(abs(new_PSD2_log - new_PSD1_log)/(abs(new_PSD2_log) + abs(new_PSD1_log))*2)) * 100; % max(dif/max(sum/2))*100%
29  ave_normed_onpoint_difference(it) = sum(sum(abs(new_PSD2_log - new_PSD1_log)/(abs(new_PSD2_log) + abs(new_PSD1_log))*2)) / (size(new_PSD1_log, 1) * size(new_PSD1_log, 2)) * 100; % sum(dif/max(sum/2))/area * 100%
30 
31 else
32  %%% NOT LOG
33 
34  difference = (new_PSD2 - new_PSD1);
35  normalization = max(abs(new_PSD2) + abs(new_PSD1), [], norm_dim)/2;
36  %%%%%% normalization = max(new_PSD2, [], 2)
37 
38  normalization = normalization*(ones(size(new_PSD1,2),1))';
39 % psd_min_limit = PSD_min;%max(max(max(normalization)))-1e4;
40  %%% normalization(find(normalization < psd_min_limit)) = 1e99;
41  normed_difference = difference ./ normalization .* 100;
42  % normed_difference(find((abs(PSD_2d2) + abs(PSD_2d1))/2 < psd_min_limit)) = 0;
43 
44  max_normed_ondim_difference(it) = max(max(abs(normed_difference))); % max, %
45  ave_normed_ondim_difference(it) = sum(sum(abs(normed_difference)))/(size(normed_difference, 1) * size(normed_difference, 2)); % average, %
46 
47  max_normed_onarea_difference(it) = max(max(abs(difference)/max(max(abs(new_PSD2) + abs(new_PSD1)))*2)) * 100; % max(dif/max(sum/2))*100%
48  ave_normed_onarea_difference(it) = sum(sum(abs(difference)/max(max(abs(new_PSD2) + abs(new_PSD1)))*2)) / (size(new_PSD1,1)*size(new_PSD1,2)) * 100; % sum(dif/max(sum/2))/area * 100%
49 
50  max_normed_onpoint_difference(it) = max(max(abs(new_PSD2 - new_PSD1)/(abs(new_PSD2) + abs(new_PSD1))*2)) * 100; % max(dif/max(sum/2))*100%
51  ave_normed_onpoint_difference(it) = sum(sum(abs(new_PSD2 - new_PSD1)/(abs(new_PSD2) + abs(new_PSD1))*2)) / (size(new_PSD1, 1) * size(new_PSD1, 2)) * 100; % sum(dif/max(sum/2))/area * 100%
52 
53 end
54 
55 ND = normed_difference;
56 ave_ND = ave_normed_ondim_difference(it);
57 max_ND = max_normed_ondim_difference(it);
58 
59 return
double max(double v1, double v2)
Return maximum.