# convwf

Convolution weight function

## Syntax

`Z = convwf(W,P)dim = convwf('size',S,R,FP)dw = convwf('dw',W,P,Z,FP)info = convwf('code')`

## Description

Weight functions apply weights to an input to get weighted inputs.

`Z = convwf(W,P)` returns the convolution of a weight matrix `W` and an input `P`.

`dim = convwf('size',S,R,FP)` takes the layer dimension `S`, input dimension `R`, and function parameters, and returns the weight size.

`dw = convwf('dw',W,P,Z,FP)` returns the derivative of `Z` with respect to `W`.

`info = convwf('code')` returns information about this function. The following codes are defined:

 `'deriv'` Name of derivative function `'fullderiv'` Reduced derivative = 2, full derivative = 1, linear derivative = 0 `'pfullderiv'` Input: reduced derivative = 2, full derivative = 1, linear derivative = 0 `'wfullderiv'` Weight: reduced derivative = 2, full derivative = 1, linear derivative = 0 `'name'` Full name `'fpnames'` Returns names of function parameters `'fpdefaults'` Returns default function parameters

## Examples

Here you define a random weight matrix `W` and input vector `P` and calculate the corresponding weighted input `Z`.

```W = rand(4,1); P = rand(8,1); Z = convwf(W,P) ```

## Network Use

To change a network so an input weight uses `convwf`, set `net.inputWeights{i,j}.weightFcn` to `'convwf'`. For a layer weight, set `net.layerWeights{i,j}.weightFcn` to `'convwf'`.

In either case, call `sim` to simulate the network with `convwf`.