IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
renumber_group_indexes.m
Go to the documentation of this file.
1 %>@ingroup conversion groupgroup
2 %>@file
3 %>@brief Renumbers group indexes according to a different dataset
4 %>
5 %> This function uses group codes to match groups across datasets. indexes_orig contains group indexes that
6 %> correspond to data_orig. indexes_orig refer to unique(data_orig.groupcodes). The resulting indexes will refer to
7 %> unique(data_ref.groupcodes)
8 %>
9 %> If a group existes in data_orig but not in data_ref, an error will be generated.
10 %
11 %> @param indexes_orig This is a selection of groups to be dealt with; indexes point to <code>unique(data_orig.groupcodes)</code>
12 %> @param data_orig Original dataset
13 %> @param data_ref Reference dataset
14 %> @return Renumbered indexes
15 function indexes = renumber_group_indexes(indexes_orig, data_orig, data_ref)
16 
17 codes_orig = unique(data_orig.groupcodes);
18 codes_ref = unique(data_ref.groupcodes);
19 no_indexes = length(indexes_orig);
20 indexes = zeros(1, no_indexes);
21 
22 v = 1:length(codes_ref);
23 
24 for i = 1:no_indexes
25  idxnew = v(strcmp(codes_orig{indexes_orig(i)}, codes_ref));
26  if isempty(idxnew)
27  error('Colony code ''%s'' not found in reference dataset!', codes_orig{indexes_orig(i)});
28  end;
29 
30  indexes(i) = idxnew; % idxnew can't have more than 1 element
31 end;
function renumber_group_indexes(in indexes_orig, in data_orig, in data_ref)