Home > chronux_2_00 > spikesort > utility > datatools > padmatrix.m

padmatrix

PURPOSE ^

PADMATRIX Pad a matrix.

SYNOPSIS ^

function padded = padmatrix(input, wherepad, padval)

DESCRIPTION ^

PADMATRIX         Pad a matrix.
   PADDED = PADMATRIX(INPUT, WHEREPAD) adds zero rows/columns to the
   matrix INPUT.  WHEREPAD is a four element vector specifying the number
   of pad rows/cols beyond [left col, right col, top row, bottom row].

   PADDED = PADMATRIX(INPUT, WHEREPAD, PADVAL) pads with PADVAL elements
   rather than zeros.

   Simplified version of Matlab's Image Processing Toolbox' PADARRAY.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function padded = padmatrix(input, wherepad, padval)
0002 %PADMATRIX         Pad a matrix.
0003 %   PADDED = PADMATRIX(INPUT, WHEREPAD) adds zero rows/columns to the
0004 %   matrix INPUT.  WHEREPAD is a four element vector specifying the number
0005 %   of pad rows/cols beyond [left col, right col, top row, bottom row].
0006 %
0007 %   PADDED = PADMATRIX(INPUT, WHEREPAD, PADVAL) pads with PADVAL elements
0008 %   rather than zeros.
0009 %
0010 %   Simplified version of Matlab's Image Processing Toolbox' PADARRAY.
0011 
0012 %%%%%%%%%% ARGUMENT CHECKING
0013 if (nargin < 3),  padval = 0;  end;
0014 
0015 if (ndims(input) > 2)
0016     error('PADMATRIX currently does not handle arrays of dimension greater than 2.');
0017 elseif ((numel(wherepad) ~= 4) && (length(wherepad) ~= 4))
0018     error('Second argument must be a four-element vector.');
0019 elseif (numel(padval) > 1)
0020     error('Third argument, when specified, must be a scalar.');
0021 end
0022 
0023 [M,N] = size(input);
0024 newN = N + sum(wherepad(1:2));
0025 
0026 %%%%%%%%%% DO THE PAD
0027 % columns first
0028 padleft = repmat(padval, [M, wherepad(1)]);
0029 padright = repmat(padval, [M, wherepad(2)]);
0030 padded = [padleft input padright];
0031 
0032 % then rows
0033 padtop = repmat(padval, [wherepad(3), newN]);
0034 padbottom = repmat(padval, [wherepad(4), newN]);
0035 padded = [padtop; padded; padbottom];
0036

Generated on Fri 15-Aug-2008 11:35:42 by m2html © 2003