%Decision tree to classify data points function [labels] = k_classify_w_tree( patterns, tree ) if(isempty(tree.left) && isempty(tree.right)) labels = tree.class; return else i_l = find(patterns(:,tree.dim) <= tree.svalue); p_l = patterns(i_l,:); i_r = find(patterns(:,tree.dim) > tree.svalue); p_r = patterns(i_r,:); labels_l = k_classify_w_tree(p_l,tree.left); labels_r = k_classify_w_tree(p_r,tree.right); labels(i_l) = labels_l; labels(i_r) = labels_r; end