function [subclassFiles, subclassNames] = janisSubclasses(ooDir,superclassName) subclassNames = {}; subclassFiles = {}; content = dir(ooDir); directories = [content.isdir]; fileList = {content(~directories).name}; for k=1:numel(fileList) if ~isempty(strfind(fileList{k},'janis_')) && ~isempty(strfind(fileList{k},'.m')) && strfind(fileList{k},'.m') == length(fileList{k})-1 [ign, fName, ign2] = fileparts(fileList{k}); try if ismember(superclassName,superclasses(fName)) tmp = eval(['?' fName]); try if ~tmp.Abstract subclassFiles{length(subclassFiles)+1} = fName; subclassNames{length(subclassNames)+1} = eval([fName '.name']); end catch exp2 if strcmp(exp2.identifier,'MATLAB:noSuchMethodOrField') if isempty(findobj([tmp.Methods{:}],'Abstract',true)) subclassFiles{length(subclassFiles)+1} = fName; subclassNames{length(subclassNames)+1} = eval([fName '.name']); end else rethrow(exp2) end end end catch exp warning('newer Matlab version recommended!') end end end