wolffd@0: function varargout = mirmode(x,varargin) wolffd@0: % m = mirmode(a) estimates the mode. A value of 0 indicates a complete wolffd@0: % incertainty, whereas a positive value indicates a dominance of wolffd@0: % major mode and a negative value indicates a dominance of minor mode. wolffd@0: % Optional arguments: wolffd@0: % mirmode(a,s) specifies a strategy. wolffd@0: % Possible values for s: 'Sum', 'Best'(default) wolffd@0: wolffd@0: stra.type = 'String'; wolffd@0: stra.default = 'Best'; wolffd@0: stra.choice = {'Best','Sum'}; wolffd@0: option.stra = stra; wolffd@0: wolffd@0: specif.option = option; wolffd@0: specif.defaultframelength = 1; wolffd@0: specif.defaultframehop = .5; wolffd@0: wolffd@0: varargout = mirfunction(@mirmode,x,varargin,nargout,specif,@init,@main); wolffd@0: wolffd@0: wolffd@0: function [x type] = init(x,option) wolffd@0: if not(isamir(x,'mirkeystrength')) wolffd@0: x = mirkeystrength(x); wolffd@0: end wolffd@0: type = 'mirscalar'; wolffd@0: wolffd@0: wolffd@0: function o = main(s,option,postoption) wolffd@0: if iscell(s) wolffd@0: s = s{1}; wolffd@0: end wolffd@0: m = get(s,'Data'); wolffd@0: if strcmpi(option.stra,'sum') wolffd@0: v = mircompute(@algosum,m); wolffd@0: elseif strcmpi(option.stra,'best') wolffd@0: v = mircompute(@algobest,m); wolffd@0: end wolffd@0: b = mirscalar(s,'Data',v,'Title','Mode'); wolffd@0: o = {b,s}; wolffd@0: wolffd@0: wolffd@0: function v = algosum(m) wolffd@0: v = sum(abs(m(:,:,:,1))) - sum(abs(m(:,:,:,2))); wolffd@0: wolffd@0: wolffd@0: function v = algobest(m) wolffd@0: v = max(m(:,:,:,1)) - max(m(:,:,:,2));