-
Notifications
You must be signed in to change notification settings - Fork 1
/
ppr_io_save_results.m
73 lines (50 loc) · 1.69 KB
/
ppr_io_save_results.m
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
function ppr_io_save_results(cr, lastUsed, X)
global data;
global OutputFile;
global OutputFileMat;
global TrainingResults;
classifier = TrainingResults;
%-------------------------------------------
% Saving prediction results
%-------------------------------------------
if ~isempty(OutputFileMat)
cvResults = cv;
% Both can be recovered from the operator
inputX = X;
%classifier = lastUsed;
save(OutputFileMat, 'cvResults', 'inputX', 'lastUsed');
end
if ~isempty(OutputFile)
% Start by 0 index
aHeader{1} = 'rowSeq';
aNumeric(:,1) = double(data.rowSeq - 1);
aHeader{2} = 'colSeq';
aNumeric(:,2) = double(data.colSeq - 1);
lIdx = sub2ind(size(X'), data.rowSeq, data.colSeq); % linear index for converting matrix to flat output
for i=1:length(classifier.finalModel.uGroup)
aHeader{2+i} = ['y', char(classifier.finalModel.uGroup(i))];
yPred = repmat(cr.yPred(:,i)', size(X,2),1);
aNumeric(:, 2 + i) = yPred(lIdx);
end
if length(classifier.finalModel.uGroup) == 2
aHeader{size(aNumeric,2)+ 1} = 'PamIndex';
yPred = repmat(cr.yPred(:,2)', size(X,2), 1);
pamIndex = 2 * yPred -1;
aNumeric(:, size(aNumeric,2)+1) = pamIndex(lIdx);
end
tbl = table( aNumeric );
if exist(OutputFile, 'file')
delete( OutputFile );
end
fid = fopen(OutputFile, 'w+');
for qi = 1:length(aHeader)
fprintf(fid, '%s', aHeader{qi});
if qi < length(aHeader)
fprintf(fid, ',');
end
end
fclose(fid);
writetable(tbl, OutputFile,'WriteRowNames',false, ...
'QuoteStrings',true, 'WriteMode','Append');
end
end % END of main funciton