0001 function padded = padmatrix(input, wherepad, padval)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
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
0027
0028 padleft = repmat(padval, [M, wherepad(1)]);
0029 padright = repmat(padval, [M, wherepad(2)]);
0030 padded = [padleft input padright];
0031
0032
0033 padtop = repmat(padval, [wherepad(3), newN]);
0034 padbottom = repmat(padval, [wherepad(4), newN]);
0035 padded = [padtop; padded; padbottom];
0036