% % lookup_species % % note: external species are indicated as negative values function index = lookup_species(species_name) global species_names; global external_species_names; if (strncmp(species_name, '*external*', 10) == 1) % treat external species using a negative index for i=1:size(external_species_names,2) if (strcmp(species_name, external_species_names{i})) index = -i; disp(['External ' species_name ', index ' num2str(index)]); return; end end external_species_names{size(external_species_names,2)+1} = species_name; index = -size(external_species_names,2); disp(['New external ' species_name ', index ' num2str(index)]); else % internal species for i=1:size(species_names,2) if (strcmp(species_name, species_names{i})) index = i; return; end end species_names{size(species_names,2)+1} = species_name; index = size(species_names,2); end end