matlab使用wavedec小波分解后,waverec还原出现报错:错误使用 appcoef C 应为 实数。

        temp1d = temp(:,k);
        [cr,lr] = wavedec(real(temp1d),n,wname);% apply wavelet
        cr( prod(lr(1,:))+1:end) = SoftThresh(cr( prod(lr(1,:))+1:end) ,wavWeight); 
        [ci,li] = wavedec(imag(temp1d),n,wname);
    ci( prod(li(:))+1:end) = SoftThresh(ci( prod(li(:))+1:end) ,wavWeight); 
    temp1d = waverec( cr, lr, wname ) + 1i * waverec( ci, li, wname ); % get back the image

上面是报错的代码,如题,报错显示是这样:

错误使用 appcoef
C 应为 实数。

出错 appcoef (第 34 行)
validateattributes(c,{'numeric'},{'vector','nonempty','real'},'appcoef','C');

出错 waverec (第 23 行)
x = appcoef(c,l,varargin{:},0);

问题是appcoef的‘C',按这意思应该是为0?为什么会报错C应该是实数呢