0001 function idx = bml_getidx(element,collection)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 if ischar(element)
0019 element = {element};
0020 end
0021
0022 if iscellstr(element)
0023 assert(iscellstr(collection),'incompatible elements and collection');
0024 idx = cellfun(@(x) zero_if_empty(find(strcmp(collection,x),1)),element,'UniformOutput',true);
0025 elseif iscell(element)
0026 assert(iscell(collection),'incompatible elements and collection');
0027 idx = cellfun(@(x) zero_if_empty(find(collection==x,1)),element,'UniformOutput',true);
0028 elseif isnumeric(element)
0029 assert(isnumeric(collection),'incompatible elements and collection');
0030 idx = arrayfun(@(x) zero_if_empty(find(collection==x,1)),element);
0031 else
0032 error('unknown type for element');
0033 end
0034
0035 if size(idx,1) > size(idx,2)
0036 idx = idx';
0037 end
0038 end
0039
0040 function y = zero_if_empty(x)
0041 if isempty(x)
0042 y = 0;
0043 else
0044 y = x;
0045 end
0046 end