0001 function OM=CS_CO_ObsModel(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 switch nargin
0024 case 1
0025 if isa(varargin{1},'CS_CO_ObsModel')
0026 OM=varargin{1};
0027 else
0028 error('Wrong parameter type in CS_CO_ObsModel constructor');
0029 end
0030 case 5
0031 if isa(varargin{1},'CSpace')
0032 OM.S=varargin{1};
0033 else
0034 error('Wrong parameter type in CS_CO_ObsModel constructor');
0035 end
0036 if isa(varargin{2},'CSpace')
0037 OM.O=varargin{2};
0038 else
0039 error('Wrong parameter type in CS_CO_ObsModel constructor');
0040 end
0041 if isa(varargin{3},'double')
0042 OM.w=varargin{3}*(1/UniformProbability(OM.S));
0043 end
0044 if isa(varargin{4},'cell')
0045 OM.gS=varargin{4};
0046 end
0047 if isa(varargin{5},'cell')
0048 OM.gO=varargin{5};
0049 end
0050
0051
0052
0053
0054 gS=GMixture(OM.w,OM.gS);
0055 ps=0;
0056
0057 for i=1:10
0058 ps=ps+Value(gS,rand(OM.S));
0059 end
0060 ps=ps/10;
0061 scale=UniformProbability(OM.S)/ps;
0062 OM.w=OM.w*scale;
0063
0064 OMBase=ObsModel();
0065
0066 OM=class(OM,'CS_CO_ObsModel',OMBase);
0067 otherwise
0068 error('Wrong number of parameters in CS_CO_ObsdModel constructor');
0069 end
0070