steps_SNR = 15;
save_plot = 1;
print_lablepoints = 1;
TIME1 = datestr(now, 'dd/mm/yy-HH:MM:SS');
disp('*******************************************************************')
disp('Beginn:')
disp(TIME1)
disp('*******************************************************************')
addpath(genpath('/home/user/workspace/QT/Software_2.0_QT/IO/'));
Res = ('/home/user/workspace/QT/Software_2.0_QT/SORT_RESULTS/End/');
set(groot, 'DefaultFigureVisible', 'on')
i = dir('**/*.mat');
tic
cla()
M_input_1 = cell(length(i), 1);
M_input_2 = cell(length(i), 1);
M_input_3 = cell(length(i), 1);
M_input_4 = cell(length(i), 1);
plotCount = 1;
legendStrings = [];
Value_Sort = cell(length(i),1);
for j = 1:length(i)
roc_file_folder = i(j).folder;
roc_file_name = i(j).name;
ROC_File_Folder_Name = fullfile(roc_file_folder,roc_file_name);
load(ROC_File_Folder_Name)
disp(roc_file_name)
folder = i(j).folder;
Title_Parts = strsplit(folder, '/');
Motor = Title_Parts{1,end-3};
Motor = strsplit(Motor, '_');
Motor = Motor{1,end};
Mic_Dis = Title_Parts{1,end-1};
Scen = Title_Parts{1,end-2};
Scen = strsplit(Scen, '_');
Scen = Scen{1,end};
SNR_help = ((length(M)-1)/2)*steps_SNR;
SNR = -SNR_help:steps_SNR:SNR_help;
str = strsplit(roc_file_name, '_');
str_dist = str{1,4};
str_mic = str{1,5};
if (strcmp(str_dist,'0.5m')|| strcmp(str_dist,'0.5')) && strcmp(str_mic,'AKG')
M_input_1{j} = M;
label1 = extractBefore({i(j).name}, ".mat");
label1 = extractAfter(label1, "_");
elseif strcmp(str_dist,'2m') && strcmp(str_mic,'AKG')
M_input_2{j} = M;
label2 = extractBefore({i(j).name},".mat");
label2 = extractAfter(label2, "_");
elseif (strcmp(str_dist,'0.5m')|| strcmp(str_dist,'0.5')) && strcmp(str_mic,'SONY')
M_input_3{j} = M;
label3 = extractBefore({i(j).name}, ".mat");
label3 = extractAfter(label3, "_");
elseif strcmp(str_dist,'2m') && strcmp(str_mic,'SONY')
M_input_4{j} = M;
label4 = extractBefore({i(j).name}, ".mat");
label4 = extractAfter(label4, "_");
end
for u = 1:length(M)
if print_lablepoints ==1
buffer = [.1 .3 .5];
buffer = repmat(buffer,1,ceil(numel(M(:,2))/numel(buffer)));
buffer(numel(M(:,2))+1:end) = [];
[~, ySortIdx] = sort(M(:,2));
buffer(ySortIdx) = buffer;
end
end
end
M_input_1 = cat(3, M_input_1{:});
M1 = mean(M_input_1, 3);
S1 = std(M_input_1,0,3);
M_input_2 = cat(3, M_input_2{:});
M2 = mean(M_input_2, 3);
S2 = std(M_input_2,0,3);
M_input_3 = cat(3, M_input_3{:});
M3 = mean(M_input_3, 3);
S3 = std(M_input_3,0,3);
M_input_4 = cat(3, M_input_4{:});
M4 = mean(M_input_4, 3);
S4 = std(M_input_4,0,3);
ax = gca;
axes.SortMethod='ChildOrder';
if any(M1)
errorbar(M1(:,2),M1(:,1),S1(:,2),S1(:,1),'-o','both','DisplayName',label1{1})
legendStrings{plotCount} = label1{1};
plotCount = plotCount + 1;
labelpoints(M1(:,2),M1(:,1), SNR, 'E', buffer)
hold on
end
if any(M2)
errorbar(M2(:,2),M2(:,1),S2(:,2),S2(:,1),'-o','both','DisplayName',label2{1})
legendStrings{plotCount} = label2{1};
plotCount = plotCount + 1;
labelpoints(M2(:,2),M2(:,1), SNR, 'E', buffer)
hold on
end
if any(M3)
errorbar(M3(:,2),M3(:,1),S3(:,2),S3(:,1),'-o','both','DisplayName',label3{1})
legendStrings{plotCount} = label3{1};
plotCount = plotCount + 1;
labelpoints(M3(:,2),M3(:,1), SNR, 'E', buffer)
hold on
end
if any(M4)
errorbar(M4(:,2),M4(:,1),S4(:,2),S4(:,1),'-o','both','DisplayName',label4{1})
legendStrings{plotCount} = label4{1};
plotCount = plotCount + 1;
labelpoints(M4(:,2),M4(:,1), SNR, 'E', buffer)
hold on
end
lgd = legend(legendStrings, 'Interpreter', 'none','Location','best');
title(lgd,'Datasets')
title(['ROC: Motorentyp ',Motor,', Motorengruppe ',Scen,', Konstante ',Mic_Dis],'Interpreter','none')
help_x = 0:0.1:1;
help_y = 0:0.1:1;
h = plot(help_x,help_y,'--','Color','g');
h.Annotation.LegendInformation.IconDisplayStyle = 'off';
xlabel('False discovery rate')
ylabel('True positive rate')
xlim([0 1]);
ylim([0 1]);
set(0,'DefaultFigureColor','remove')
file_save = strcat('Motorentyp_',Motor,'Motorengruppe_',Scen,'_Konstante_',Mic_Dis,'.eps');
Full_Export_Path = fullfile(Res,file_save);
if save_plot == 1
export_fig(Full_Export_Path)
end
disp('*******************************************************************')
disp('Time Beginn:')
disp(TIME1)
disp('*******************************************************************')
disp('Time finish:')
TIME2 = datestr(now, 'dd/mm/yy-HH:MM:SS');
disp(TIME2)
disp('*******************************************************************')
toc