MATLAB: Vararout not assigned error when calling wthrmngr

denoisingstationary wavelet transformswtwaveletswthrmngr

Hello,
I am trying to use the stationary wavelet transform to denoise a signal, with the threshold defined using wthrmngr, and the denoising parameters are changed using a factorial design as
% Soft or hard thresholding
if sorhThresh == 1
SORH = 's';
else
SORH = 'h';
end
% Multiplicative factor for threshold
if multThresh == 1
SCAL = 'sln';
else
SCAL = 'mln';
end
% Threshold selection rule:
switch threshRule
case 1
TPTR = 'rigrsure';
case 2
TPTR = 'sqtwolog';
case 3
TPTR = 'heursure';
case 4
TPTR = 'minimaxi';
end
SWTDEC = swt(cu,J,wname);
THR = wthrmngr('sw1ddenoLVL',threshRule,SWTDEC,SCAL);
etc…
But for some reason I get the following error, even though the output is assigned to wthrmngr:
Output argument "varargout" (and maybe others)
not assigned during call to
"/Applications/MATLAB_R2011a.app/toolbox/wavelet/wavelet/wthrmngr.m>wthrmngr".
Are some combinations of thresholding rule and multiplicative factor not permitted? Any help would be much appreciated, thank you!
Phil

Best Answer

Hi Phil, I don't have any trouble running the following on R2011a
x = randn(1024,1);
J = 1;
wname = 'db2';
SWTDEC = swt(x,J,wname);
threshRule = 'rigrsure';
SCAL = 'sln';
THR = wthrmngr('sw1ddenoLVL',threshRule,SWTDEC,SCAL);