dwt3d instruction returns with error saying filter H must be a double precision filter

1 view (last 30 days)

when i try to run the following example code for dwt3D

    [af, sf] = farras;
    x = rand(128,64,64);
    w = dwt3D(x,3,af);
    y = idwt3D(w,3,sf);
    err = x-y; 
    max(max(max(abs(err))))

i get an error saying

Error using upfirdn>validateinput (line 104)
The filter H must be a double-precision vector.
Error in upfirdn (line 81)
[p,q] = validateinput(x,h,varargin);
Error in afb3D_A (line 41)
   lo(:, :, k) = upfirdn(x(:, :, k), lpf, 1, 2);
Error in afb3D (line 36)
[L, H] = afb3D_A(x, af1, 1);
Error in dwt3D (line 27)
    [x w{k}] = afb3D(x, af, af, af);

i have all the required function files with me in the current folder of MATLAB

  10 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 20 Apr 2018
Conflicting versions of the data loading function caused this error. The required data is in the form of numeric arrays; the data loading function was returning a cell array instead.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!