diff toolboxes/MIRtoolbox1.3.2/MIRToolbox/mirmode.m @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolboxes/MIRtoolbox1.3.2/MIRToolbox/mirmode.m	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,47 @@
+function varargout = mirmode(x,varargin)
+%   m = mirmode(a) estimates the mode. A value of 0 indicates a complete
+%       incertainty, whereas a positive value indicates a dominance of
+%       major mode and a negative value indicates a dominance of minor mode.
+%   Optional arguments:
+%   mirmode(a,s) specifies a strategy. 
+%       Possible values for s: 'Sum', 'Best'(default)
+
+        stra.type = 'String';
+        stra.default = 'Best';
+        stra.choice = {'Best','Sum'};
+    option.stra = stra;
+    
+specif.option = option;
+specif.defaultframelength = 1;
+specif.defaultframehop = .5;
+
+varargout = mirfunction(@mirmode,x,varargin,nargout,specif,@init,@main);
+
+
+function [x type] = init(x,option)
+if not(isamir(x,'mirkeystrength'))
+    x = mirkeystrength(x);
+end
+type = 'mirscalar';
+
+
+function o = main(s,option,postoption)
+if iscell(s)
+    s = s{1};
+end
+m = get(s,'Data');
+if strcmpi(option.stra,'sum')
+    v = mircompute(@algosum,m);
+elseif strcmpi(option.stra,'best')
+    v = mircompute(@algobest,m);
+end
+b = mirscalar(s,'Data',v,'Title','Mode');
+o = {b,s};
+
+
+function v = algosum(m)
+v = sum(abs(m(:,:,:,1))) - sum(abs(m(:,:,:,2)));
+
+
+function v = algobest(m)
+v = max(m(:,:,:,1)) - max(m(:,:,:,2));
\ No newline at end of file