Code covered by the BSD License  

Highlights from
Statistical Learning Toolbox

from Statistical Learning Toolbox by Dahua Lin
Functions for statistical learning, pattern recognition and computer vision, covering many topics.

slsumstat_blks(data, statfunc, varargin)
function R = slsumstat_blks(data, statfunc, varargin)
%SLSUMSTAT_BLKS Sums up statistics on all blocks for partitioned data
%
% $ Syntax $
%   - R = slsumstat_blks(data, statfunc, ...)
%
% $ Arguments $
%   - data:         the data array of cell array of data array filenames
%   - statfunc:     the function to compute statistics on data array
%   - R:            the sum statistics
%
% $ Description $
%   - R = slsumstat_blks(data, statfunc, ...) computes statistics on
%     all data blocks and sums them by plus. When data is an array,
%     it just invokes statfunc on it and return, if data is a cell array
%     of filenames, it loads data of each block, computes statistics
%     blockwise and sums them up to give the final result.
%
% $ Remarks $
%   - The function is widely applicable for diverse types of computation.
%     The only conditions is that the function values on the whole matrix
%     is equivalent to the sum of function values on all blocks.
% 
%   - The function values can be either a scalar or an array of any 
%     dimensions, provided that the values produced on all blocks have
%     equal size.
%
% $ History $
%   - Created by Dahua Lin, on Aug 8th, 2006
%

%% parse and verify input arguments

if nargin < 2
    raise_lackinput('slsumstat_blks', 2);
end
if ~isnumeric(data) && ~iscell(data)
    error('sltoolbox:invalidargs', ...
        'data should be either a numeric array or a cell array of strings');
end


%% compute

if isnumeric(data)
    R = feval(statfunc, data, varargin{:});
else
    n = numel(data);
    
    % first section
    curdata = slreadarray(data{1});
    R = feval(statfunc, curdata, varargin{:});
    
    % other section
    if n > 1
        for i = 2 : n
            curdata = slreadarray(data{i});
            curR = feval(statfunc, curdata, varargin{:});
            R = R + curR;
        end
    end
end



Contact us at files@mathworks.com