-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkernelSVDMSMEval.m
More file actions
29 lines (27 loc) · 1002 Bytes
/
kernelSVDMSMEval.m
File metadata and controls
29 lines (27 loc) · 1002 Bytes
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
function RSLT = kernelSVDMSMEval(trainData, testData, nSubDim1, nSubDim2, nSigma, showFlag)
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)
V1 = cvtKernelBasisVectorSVD(trainData, nSubDim1{j}, nSigma{i});
for k = 1:size(nSubDim2, 2)
V2 = cvtKernelBasisVectorSVD(testData, nSubDim2{k}, nSigma{i});
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