Matlab stores all level of Wavelet's Approximation & Details in a single Row I'd like to ask when we apply Wavelet transform on 1-D Signal in Matlab it simply stores both Approximations and Details into a single row which is quite annoying for me,

have a look,



Where,

X = original Signal
cDn = Details coefficients
cAn = Approximations

This is how Matlab do it,

Suppose I have a random sequence,

X=[2 2 3 100 4 0 98 100 90 2 3 67 98 0 6 6 89 9 21 78]


If I apply 2-level Wavelet transform on this signal it will be decomposed in to cA1 and cD1. cA1 will then further decomposed into cA2 and cD2. But matlab will store all these A's and D's into a single row. Have a look what matlab will do to the resultant coefficients after performing Wavelet Transform on it.

X = 20 Samplesc  -&gt; cD1 = 10 Samples
                    cA1 = 10 Samples
                                     -&gt; cD2 = 5 Samples
                                        cA2 = 5 Samples


Rows = 1
Columns = 20

Column 1 to 5 =   cA2
Column 6 to 10 =  cD2
Column 11 to 20 = cD1 

Why Matlab does that ? Why it doesn't decompose signal in Rows since that would be easier to represent.
You can use the function dwt instead that does single-level decomposition and use that again for 2-level decomposition. Personally, I use wavedec all the time, I actually find it easy to have it in one array. Boils down to personal preferences I guess.