www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/eml/private/lengthPacketLevels.m
function n = lengthPacketLevels(j) %MATLAB Code Generation Private Function % n = sum(2.^(1:j)) % Copyright 2016 The MathWorks, Inc. %#codegen coder.internal.prefer_const(j); coder.extrinsic('cumsum'); table = coder.const(genTable); maxj = coder.const(coder.internal.indexInt(length(table))); if j < 1 n = coder.internal.indexInt(1); elseif j > maxj n = table(maxj); else n = table(j); end %-------------------------------------------------------------------------- function table = genTable % table = cumsum(2.^(1:nbits)), where nbits is the number of bits in the % indexIntClass minus 2. N = coder.internal.int_nbits(coder.internal.indexIntClass) - 2; table = zeros(1,N,coder.internal.indexIntClass); table(1) = 2; p2 = coder.internal.indexInt(2); for k = 2:N p2 = p2*2; table(k) = table(k - 1) + p2; end %--------------------------------------------------------------------------