Mercurial > hg > camir-aes2014
annotate toolboxes/MIRtoolbox1.3.2/MIRToolbox/isamir.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
rev | line source |
---|---|
wolffd@0 | 1 function b = isamir(x,class) |
wolffd@0 | 2 |
wolffd@0 | 3 if isempty(x) || isnumeric(x) |
wolffd@0 | 4 b = 0; |
wolffd@0 | 5 return |
wolffd@0 | 6 end |
wolffd@0 | 7 |
wolffd@0 | 8 if iscell(x) |
wolffd@0 | 9 x = x{1}; |
wolffd@0 | 10 end |
wolffd@0 | 11 |
wolffd@0 | 12 if isa(x,class) |
wolffd@0 | 13 b = 1; |
wolffd@0 | 14 return |
wolffd@0 | 15 elseif ischar(x) && strcmpi(class,'miraudio') |
wolffd@0 | 16 b = 1; |
wolffd@0 | 17 return |
wolffd@0 | 18 elseif not(isa(x,'mirdesign')) |
wolffd@0 | 19 b = 0; |
wolffd@0 | 20 return |
wolffd@0 | 21 end |
wolffd@0 | 22 |
wolffd@0 | 23 type = get(x,'Type'); |
wolffd@0 | 24 if iscell(type) |
wolffd@0 | 25 type = type{1}; |
wolffd@0 | 26 end |
wolffd@0 | 27 types = lineage(type); |
wolffd@0 | 28 b = 0; |
wolffd@0 | 29 i = 0; |
wolffd@0 | 30 while not(b) && i<length(types) |
wolffd@0 | 31 i = i+1; |
wolffd@0 | 32 if strcmpi(types(i),class) |
wolffd@0 | 33 b = 1; |
wolffd@0 | 34 end |
wolffd@0 | 35 end |
wolffd@0 | 36 |
wolffd@0 | 37 |
wolffd@0 | 38 function types = lineage(class) |
wolffd@0 | 39 switch class |
wolffd@0 | 40 case {'miraudio','mirenvelope'} |
wolffd@0 | 41 parent = 'mirtemporal'; |
wolffd@0 | 42 case {'mirautocor','mircepstrum','mirchromagram','mirhisto',... |
wolffd@0 | 43 'mirkeysom','mirkeystrength','mirmatrix','mirmfcc',... |
wolffd@0 | 44 'mirscalar','mirsimatrix','mirspectrum',... |
wolffd@0 | 45 'mirtemporal','mirtonalcentroid'} |
wolffd@0 | 46 parent = 'mirdata'; |
wolffd@0 | 47 otherwise |
wolffd@0 | 48 parent = ''; |
wolffd@0 | 49 end |
wolffd@0 | 50 |
wolffd@0 | 51 if isempty(parent) |
wolffd@0 | 52 types = {class}; |
wolffd@0 | 53 else |
wolffd@0 | 54 parents = lineage(parent); |
wolffd@0 | 55 types = {class parents{:}}; |
wolffd@0 | 56 end |