1 %> @ingroup datasettools
3 %> @brief Splits data according to classes. Returns an array of structures.
5 %> Split_classes separates data according to the
class of each
6 %> instance. Instances are the rows of
'data'.
8 %> @param data
irdata object
9 %> @param hierarchy classlabel levels to be taken into account
11 %> @return <em>[pieces]</em> or <em>[pieces, map]</em>. @c pieces: array of
irdata objects; @c map cell array of vectors containing the
12 %> indexes of the rows in the original dataset that went to each element of piece.
15 if sum(data.classes < 0) > 0
16 irwarning('Dataset has negative classes which will be ignored!');
21 obsmaps = {1:data.no};
24 if ~exist(
'hierarchy',
'var')
25 hierarchy = []; % means maximum possible
29 idxs_cl_new = cell2mat(cellmap(:, 4));
30 no_classes = max(idxs_cl_new)+1;
31 classmaps = cell(1, no_classes);
33 classmaps{i} = find(idxs_cl_new == i-1);
39 out = data.split_map(obsmaps);
45 varargout = {out, obsmaps};
function classmap2obsmap(in classmaps, in classes)
function data_split_classes(in data, in hierarchy)
function classlabels2cell(in classlabels, in new_hierarchy)