-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpdf_Mixture_Single.m
42 lines (29 loc) · 1.03 KB
/
pdf_Mixture_Single.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
function result = pdf_Mixture_Single(x,p,mu,sigma)
global xDomain;
global pseudo_uniform;
pseudo_normal = normpdf(xDomain,mu,sigma).*pseudo_uniform;
normFactor_uniform = sum(pseudo_uniform);
normFactor_normal = sum(pseudo_normal);
if normFactor_uniform == 0
normFactor_uniform = 10^-8;
end
if normFactor_normal == 0
normFactor_normal = 10^-8;
end
uniResultTemp = interp1(xDomain, pseudo_uniform, x);
normResultTemp = normpdf(x,mu,sigma).*uniResultTemp;
uniResultTemp = uniResultTemp/normFactor_uniform;
normResultTemp = normResultTemp/normFactor_normal;
propNorm = p;
propUniform = 1-p;
normResult = propNorm*normResultTemp;
uniResult = propUniform*uniResultTemp;
if sum(size(normResult)==size(uniResult))==2
tempResult = normResult+uniResult;
else
tempResult = normResult+uniResult';
end
%xIndex = x-min(xDomain)+1;
%results = tempResult(xIndex);
result = tempResult;
end