diff toolboxes/MIRtoolbox1.3.2/somtoolbox/hits.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/somtoolbox/hits.m	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,53 @@
+function [hits,ninvalid] = hits(bmus, mmax, values)
+
+%HITS Calculate number of occurances of each value.
+%
+% hits = hits(bmus,[mmax],[values])
+%
+%   h = hits(bmus);
+%   h = hits(bmus,length(sM.codebook)); 
+%
+%  Input and output arguments ([]'s are optional): 
+%   bmus     (vector) BMU indeces (or other similar) 
+%   [mmax]   (scalar) maximum index, default value max(bmus)
+%            (struct) map or topology struct from where the maximum
+%                     index is acquired
+%   [values] (vector) values associated with the data (default = 1)
+%
+%   hits     (vector) the number of occurances of each index
+%                     (or if values are given, their sum for each index)
+%   ninvalid (scalar) number of invalid indeces (NaN, Inf or 
+%                     <=0 or > mmax)
+%
+% See also SOM_HITS, SOM_BMUS.    
+
+% Copyright (c) 2002 by the SOM toolbox programming team.
+% Contributed to SOM Toolbox by Juha Vesanto, April 24th, 2002
+% http://www.cis.hut.fi/projects/somtoolbox/
+
+% Version 2.0beta juuso 240402
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if nargin<2 | isempty(mmax), 
+  mmax = max(bmus);
+elseif isstruct(mmax), 
+  switch mmax.type, 
+   case 'som_map',   mmax = prod(mmax.topol.msize);
+   case 'som_topol', mmax = prod(mmax.msize);
+   otherwise, 
+    error('Illegal struct for 2nd argument.')
+  end
+end
+
+if nargin<3, values = 1; end
+
+valid_bmus = find(isfinite(bmus) & bmus>0 & bmus<=mmax); 
+ninvalid = length(bmus)-length(valid_bmus); 
+
+bmus = bmus(valid_bmus); 
+if length(values)>length(bmus), values = values(valid_bmus); end
+hits = full(sum(sparse(bmus,1:length(bmus),values,mmax,length(bmus)),2));
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+