Structure Matrices and Convolution Kernels
  Structure Matrices and Convolution Kernels
| DiskMatrix[r] | a radius r disk of 1s inside a (2r+1)×(2r+1) matrix of 0s | 
| DiskMatrix[{r1,…}] | an ellipsoid of 1s with radii r1, … inside an array of dimension (2r1+1)× … | 
| DiskMatrix[{r1, …},{n1, …}] | an ellipsoid with radii r1, … inside an array of dimension n1× … | 
| DiamondMatrix[{r1,…},{n1,…}] | a diamond of 1s with radii r1, … inside an array of dimension n1× … | 
| BoxMatrix[{r1,…},{n1,…}] | a box of 1s with radii r1, … inside an array of dimension n1× … | 
| CrossMatrix[{r1,…},{n1,…}] | a cross of 1s with radii r1, … inside an array of dimension n1× … | 
| GaussianMatrix[r] | a (2r+1)×(2r+1) matrix that samples a Gaussian | 
| GaussianMatrix[{r,σ}] | a (2r+1)×(2r+1) matrix that samples a Gaussian with standard deviation σ  | 
| GaussianMatrix[{{r1,…},{σ1,…}}] | a (2r1+1)× … array that samples a Gaussian with standard deviation σi in the i th direction | 
| GaussianMatrix[{{r1,…},{σ1,…}},{n1,…}] | a (2r1+1)× … array that samples the ni  th discrete derivative in the i th direction of a Gaussian with standard deviation σi in the i th direction | 
GaussianMatrix can construct arrays with any rank:
   
   
   By default, the matrix elements are numerical and constructed to behave optimally under discrete convolution. Using WorkingPrecision->Infinity will produce an exact representation:
   
   
   Use Method->"Gaussian" to sample a true Gaussian:
   
   
   
   
   
   
   
   
   
   
   
   Sum derivatives by using nested List objects in the second argument. For example, this plots the Laplacian: