-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheckMaxLik.m
More file actions
95 lines (55 loc) · 2.04 KB
/
checkMaxLik.m
File metadata and controls
95 lines (55 loc) · 2.04 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
function TotalcandSS=checkMaxLik(emissionProbTableAmongCandS,observationS,transitionMatrixS,candSS,phiS,TotalcandSS,iS,TotalobservationS)
a=0;
tempCandProb=[];
% for i=1:size(emissionProbTableAmongCandS,2)
% table=emissionProbTableAmongCandS{1,i}(:,3:6);
% Lia = ismember(table,observationS,'rows');
% check=sum(Lia);
% a=check/size(table,1);
% tempCandProb=[tempCandProb;a];
%
% end
for i=1:size(emissionProbTableAmongCandS,2)
totalNum=size(emissionProbTableAmongCandS{1,i},1);
a=1/totalNum;
tempCandProb=[tempCandProb;a];
end
insertEphsilonLoc=size(candSS,2)+1;
for i=1:size(tempCandProb,1)
if iS==1
tempCandProb(i)=phiS*tempCandProb(i);
end
candSS(i,insertEphsilonLoc)=tempCandProb(i);
ephiWithTran=candSS(i,insertEphsilonLoc)*transitionMatrixS(candSS(i,7),:);
posNextState=[];
for ju=1:size(ephiWithTran,2)
if ephiWithTran(1,ju)~=0
posNextState=[posNextState;ju];
end
end
candTempEtP=0;
candEtP=[];
tri=0;
for jc=1:size(posNextState,1)
posNextState(1);
for jun=1:size(TotalcandSS{1,iS+1},1)
if posNextState(jc)==TotalcandSS{1,iS+1}(jun,7)
nextemissionProbTableAmongCandS=allCase(TotalcandSS{1,iS+1});
tri=1;
emPro=makeEmProS(nextemissionProbTableAmongCandS,TotalobservationS(iS+1,:));
%TotalcandSS{1,iS}(i,8)=ephiWithTran(posNextState(jc))*emPro(jun);
candTempEtP=ephiWithTran(posNextState(jc))*emPro(jun);
candEtP=[candEtP;posNextState(jc),candTempEtP];
end
end
end
if tri ==1
maxCandEtp=max(candEtP(:,2));
for tch=1:size(candEtP,1)
if candEtP(tch,2)==maxCandEtp
TotalcandSS{1,iS}(i,8)=maxCandEtp;
end
end
end
end
return