wolffd@0: function CPD = tree_CPD(varargin) wolffd@0: %DTREE_CPD Make a conditional prob. distrib. which is a decision/regression tree. wolffd@0: % wolffd@0: % CPD =dtree_CPD() will create an empty tree. wolffd@0: wolffd@0: if nargin==0 wolffd@0: % This occurs if we are trying to load an object from a file. wolffd@0: CPD = init_fields; wolffd@0: clamp = 0; wolffd@0: CPD = class(CPD, 'tree_CPD', discrete_CPD(clamp, [])); wolffd@0: return; wolffd@0: elseif isa(varargin{1}, 'tree_CPD') wolffd@0: % This might occur if we are copying an object. wolffd@0: CPD = varargin{1}; wolffd@0: return; wolffd@0: end wolffd@0: wolffd@0: CPD = init_fields; wolffd@0: wolffd@0: wolffd@0: clamped = 0; wolffd@0: fam_sz = []; wolffd@0: CPD = class(CPD, 'tree_CPD', discrete_CPD(clamped, fam_sz)); wolffd@0: wolffd@0: wolffd@0: %%%%%%%%%%% wolffd@0: wolffd@0: function CPD = init_fields() wolffd@0: % This ensures we define the fields in the same order wolffd@0: % no matter whether we load an object from a file, wolffd@0: % or create it from scratch. (Matlab requires this.) wolffd@0: wolffd@0: %init the decision tree set the root to null wolffd@0: CPD.tree.num_node = 0; wolffd@0: CPD.tree.root=1; wolffd@0: CPD.tree.nodes=[]; wolffd@0: