错误使用 appcoef:需要的 N 应为具有值 <= -1 的标量

使用waverec对近似系数进行完全重构

aa=waverec(a,99951,'coif5');

报错:

错误使用 appcoef
需要的 N 应为具有值 <= -1 的标量。

出错 appcoef (line 59)
validateattributes(n,{'numeric'},...

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

出错 coif_ana (line 6)
aa=waverec(a,99951,'coif5');

这种情况N是哪里来的?怎么在源代码里面解决?

根据错误提示,appcoef 函数需要一个标量 $N$,并且 $N$ 的值应该小于等于 -1。这个函数在 waverec 函数内部被调用,用于计算各个尺度上的近似系数。

在调用 waverec 函数时,第二个参数应该是一个长度为 $N$ 的向量,而不是一个整数。根据你的代码,a 是一个长度为 99951 的向量,因此第二个参数应该是 99951,而不是字符串 'coif5'。

因此,正确的调用方式是:

aa = waverec(a, 99951, 'coif5');

这样应该就可以成功进行完全重构了。