-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathrebuilt.m
More file actions
60 lines (58 loc) · 1.75 KB
/
rebuilt.m
File metadata and controls
60 lines (58 loc) · 1.75 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
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
function [wd, whd] = rebuilt(wd, whd, par, criteria)
% par = 'Time';
[index, ~] = detect(par);
[indsource, ~] = detect('Reference');
indsn = detecthp('setnumber');
setsarray = [];
k = 0;
i = 0;
ind1 = i + 2;
while i <= size(wd(2:end,:),1)-1
i = i + 1;
sheetnumber = whd{i+1,indsn}(1,1);
setnumber = whd{i+1,indsn}(1,2);
source = wd{i+1,indsource};
for j=i+1:size(wd(2:end,:),1)
if (whd{j+1,indsn}(1,2) ~= setnumber) || ((whd{j+1,indsn}(1,2) == setnumber) && (whd{j+1,indsn}(1,1) ~= sheetnumber))...
|| ((whd{j+1,indsn}(1,2) == setnumber) && (whd{j+1,indsn}(1,1) == sheetnumber) && (strcmp(source,wd{j+1,indsource}) == 0))
ind2 = j;
k = k + 1;
setsarray(k,:) = [ind1, ind2];
i = j - 1;
ind1 = i + 2;
break;
end %if
end %j
end %i
ind2 = size(wd(2:end,:),1) + 1;
setsarray(k+1,:) = [ind1, ind2];
eliminateind = [];
k = 0;
for i=1:size(setsarray,1)
temp = wd(setsarray(i,1):setsarray(i,2),index);
temp = cellfun(@str2double,temp);
switch criteria
case 'Max'
desire = max(temp);
case 'Min'
desire = min(temp);
case 'Mean'
[~,i0] = min(abs(temp - mean(temp)));
desire = temp(i0);
% desire = mean(temp);
case 'Median'
[~,i0] = min(abs(temp - median(temp)));
desire = temp(i0);
end %switch;
if (all(isnan(temp) == 1) == 0)
ind = find(temp == desire) + setsarray(i,1) - 1;
for j=setsarray(i,1):setsarray(i,2)
if (j ~= ind)
k = k + 1;
eliminateind(k) = j;
end %if
end %j
end %if
end %if
wd(eliminateind,:) = [];
whd(eliminateind,:) = [];