Function Reference
— Function File: colfilt (A, [r, c], [m, n], 'sliding', f,...)

Apply filter to matrix blocks

For each r x c overlapping subblock of A, add a column in matrix C f(C,...) should return a row vector which is then reshaped into a a matrix of size A and returned. A is processed in chunks of size m x n. — Function File: colfilt (A, [r, c], [m, n], 'distinct', f,...)

For each r x c non-overlapping subblock of A, add a column in matrix C f(C,...) should return a matrix of size C each column of which is placed back into the subblock from whence it came. A is processed in chunks of size m x n.

The present version requires [m, n], but for compatibility it should be optional. Use colfilt(A,[r, c], size(A),...)

The present version requires that [m, n] divide size(A), but for compatibility it should work even if [m, n] does not divide A. Use the following instead:

          [r, c] = size(A);
          padA = zeros (m*ceil(r/m),n*ceil(c/n));
          padA(1:r,1:c) = A;
          B = colfilt(padA,...);
          B = B(1:r,1:c);

The present version does not handle 'distinct'