-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKOMSMEval.m
More file actions
35 lines (33 loc) · 1.28 KB
/
KOMSMEval.m
File metadata and controls
35 lines (33 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function RSLT = KOMSMEval(trainData, testData, nSubDim1, nSubDim2, nSigma, howFlag)
if ~exist('showFlag', 'var') || isempty(showFlag)
showFlag = true;
else
showFlag = false;
end
if ndims(testData) == 4
testSet = size(testData, 3);
else
testSet = 1;
end
nClass = size(trainData, 3);
RSLT = cell(size(nSubDim2, 2), size(nSubDim1, 2), size(nSigma, 2));
for i = 1:size(nSigma, 2)
for j = 1:size(nSubDim1, 2)
KO = CvtKOMSM(trainData, nSubDim1{j}, nSigma{i});
V1 = KO.Transform(trainData);
V1 = orzBasisVector(V1, nSubDim1{j});
V2 = KO.Transform(testData);
for k = 1:size(nSubDim2, 2)
if KO.nOrthDim < nSubDim1{j} || KO.nOrthDim < nSubDim2{k}
continue;
end
V2 = orzBasisVector(V2, nSubDim2{k});
sim = orzCanonicalAngles(V1, V2);
RSLT{k, j, i} = OrzEval(sim(:, :, end, end), orzLabel(testSet, nClass));
if showFlag == true
fprintf('sigma: %0.3f, subdim1: %d, indim: %d, ER: %0.3f%%, EER: %0.3f%% \n', nSigma{i}, nSubDim1{j}, nSubDim2{k}, RSLT{k, j, i}.ER*100, RSLT{k, j, i}.EER*100);
end
end
end
end
end