a b/calculate_error.m
1
function tbl = calculate_error(true,pred)
2
3
% Calculate TP, FP, TN, FN, and class accuracy for matrices of true and
4
% predicted labels
5
6
class = unique(true);
7
8
for i = 1:numel(class)
9
10
    TP(i,1) = sum(pred==class(i) & true==class(i)) / sum(pred==class(i)) * 100;
11
    FP(i,1) = sum(pred==class(i) & true~=class(i)) / sum(pred==class(i)) * 100;
12
13
    TN(i,1) = sum(pred~=class(i) & true~=class(i)) / sum(pred~=class(i)) * 100;
14
    FN(i,1) = sum((pred~=class(i)) & (true==class(i))) / sum(pred~=class(i))  * 100;
15
16
    class_acc(i,1) = sum(pred==class(i) & true==class(i))/sum(true==class(i));
17
end
18
19
TP(isnan(TP)) = 0;
20
FP(isnan(FP)) = 0;
21
TN(isnan(TN)) = 0;
22
FN(isnan(FN)) = 0;
23
24
25
tbl = array2table([TP, FP, TN, FN,class_acc]);
26
tbl.Class = class;
27
tbl.Properties.VariableNames{1} = 'TP';
28
tbl.Properties.VariableNames{2} = 'FP';
29
tbl.Properties.VariableNames{3} = 'TN';
30
tbl.Properties.VariableNames{4} = 'FN';
31
tbl.Properties.VariableNames{5} = 'Class_Acc';
32
tbl = movevars(tbl, 'Class', 'Before', 'TP');
33
34
end
35
    
36
37