difc is a wrapper for matlab's diff() and takes the same arguments.
The returned matrix size is the same as the input matrix size, like matlab's gradient().
Higher N works using recursion.
Zero N returns the input matrix.
Petorr (2020). circular diff (https://www.mathworks.com/matlabcentral/fileexchange/44701-circular-diff), MATLAB Central File Exchange. Retrieved .
Version 1 -- To keep the memory footprint small (and the code very simple), sum() is used to calculate the wrapped values from the result of diff. This may cause slowness or numerical error in some cases.
Previous version had faulty automatic dimension assignment when the function is called with a single argument.
It has been updated to match diff() defaults for vector, matrix and N-dim arrays.