### Syntax

`Mout = sw_resconv(M,x,dx,func)`

### Description

`Mout = sw_resconv(M,x,dx,func)`

convolutes a 2D matrix with a Gaussian
along the first dimension of the matrix. The convolution keeps the
integrated intensity \(\sum I\cdot dx\) constant. It assumes the `x`

vector
contains the center points of the bins and the distances between the
generated bin edges is calculated by interpolating from the distances
between the given `x`

bin center positions.

### Input Arguments

`M`

- Arbitrary matrix with dimensions of \([m_1\times m_2]\).
`x`

- Column vector of coordinates along the first dimension of the matrix.
`dx`

- FWHM value of the Gaussian as a
function of \(dx\). Either a function handle with a header
`fwhm = dx(xVal)`

or a vector of polynomial coefficients that produces the right standard deviation. In this case in the function the following line will be executed`fwhm = polyval(dx,xVal)`

or a constant FWHM value.The standard deviation of the Gaussian is calculated from the given \(dx\) value using the formula \(\sigma_G = fwhm_G/2/\sqrt{2\cdot log(2)} \sim fwhm_G\cdot 0.424661\) If a general resolution function is provided in the

`func`

argument, it will be called as`y = func(x,[1 x0 fwhm])`

. In this case the`fwhm`

can be a row vector and the meaning of the different parameters will depend on`func`

. `func`

- Resolution function shape with header
`y = func(x,p)`

, where`x`

is a column vector,`p`

is a row vector of parameters. The meaning of the first 2 elements of the parameter vector are fixed.`p(1)`

integral of the function.`p(2)`

center of mass position of the function.

Optional, default value is

`@swfunc.gaussfwhm`

.

### Output Arguments

`Mout`

- Matrix with same dimensions as the input
`M`

.