nanconv

Convolution in 1D or 2D ignoring NaNs and (optionally) correcting for edge effects.
2,4K téléchargements
Mise à jour 28 mai 2013

Afficher la licence

NANCONV works by running 'conv2' either two or three times. The first time is run on the original input signals A and K, except all the NaN values in A are replaced with zeros. The 'same' input argument is used so the output is the same size as A. The second convolution is done between a matrix the same size as A, except with zeros wherever there is a NaN value in A, and ones everywhere else. The output from the first convolution is normalized by the output from the second convolution. This corrects for missing (NaN) values in A, but it has the side effect of correcting for edge effects due to the assumption of zero padding during convolution. When the optional 'noedge' parameter is included, the convolution is run a third time, this time on a matrix of all ones the same size as A. The output from this third convolution is used to restore the edge effects. The 'noedge' parameter is enabled by default so that the output from 'nanconv' is identical to the output from 'conv2' when the input argument A has no NaN values.

C = NANCONV(A, K) convolves A and K, correcting for any NaN values
in the input vector A. The result is the same size as A (as though you
called 'conv' or 'conv2' with the 'same' shape).

C = NANCONV(A, K, 'param1', 'param2', ...) specifies one or more of the following:
'edge' - Apply edge correction to the output.
'noedge' - Do not apply edge correction to the output (default).
'nanout' - The result C should have NaNs in the same places as A.
'nonanout' - The result C should have ignored NaNs removed (default).
Even with this option, C will have NaN values where the
number of consecutive NaNs is too large to ignore.
'2d' - Treat the input vectors as 2D matrices (default).
'1d' - Treat the input vectors as 1D vectors.
This option only matters if 'a' or 'k' is a row vector,
and the other is a column vector. Otherwise, this
option has no effect.

Citation pour cette source

Benjamin Kraus (2024). nanconv (https://www.mathworks.com/matlabcentral/fileexchange/41961-nanconv), MATLAB Central File Exchange. Récupéré le .

Compatibilité avec les versions de MATLAB
Créé avec R2011b
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur NaNs dans Help Center et MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Publié le Notes de version
1.1.0.0

Added "and (optionally) correcting for edge effects." to the summary. No change to the script.

1.0.0.0