⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 haarcompress.m

📁 一本很简单
💻 M
字号:
function HaarCompress(normalization, save)% HaarCompress(normalization, save) does a Haar wavelet decomposition of a% simple function, sorts the coefficients, and plots compression attempts.% The normalization parameter can be 'max' or 'L2'.  If save is present, the% plot is saved as an EPS file.% Settings:filename = 'haar1d-compress.ps';jinf = 8;jmax = 4;jmin = 0;hspacing = 2.0; % horizontal spacing between functionshsize = 1.6;    % horizontal size of each functionvspacing = 0.9; % vertical spacing between functionsvsize = 0.5;    % vertical sizevgap = vspacing - vsize;% Set up plot:figure(1);clg;hold on;axis off;axis equal;% Axis:axis1_x = [0, 0, 1];axis1_y = [1, 0, 0];% True function:xinf = [0:2^jinf] / 2^jinf;yinf = (10 * exp(-16*xinf/3) .* sin(8*xinf) + 1)/6;% Finest scaling function approximation, computed by averaging:y = zeros(1, 2^jmax);for i = 1:2^(jinf-jmax)  y = y + yinf(i:2^(jinf-jmax):2^jmax*(2^(jinf-jmax)-1)+i);end;y = y / 2^(jinf-jmax);% Set up plot:cmax = 2^jmax;cmin = 2;cstep = 2;rows = (cmax - cmin + cstep) / (2*cstep);clg;hold on;axis off;axis equal;% Sort transformed coefficients:xform = HaarDecomposition(y, normalization);[junk, ind] = sort(abs(xform));% Latex stuff:if nargin > 1  % Latex stuff:  disp(['    \begin{picture}(' num2str(hspacing + hsize) ',' ...	  num2str(vspacing*rows - vgap/2) ')(0,' num2str(-vgap/2) ')']);  disp(['      \putbl{0,0}{\psfig{file=' filename ',width=' ...	  num2str(hspacing + hsize) 'in}}']);end;% Show a bunch of approximations:s = 0;for c = cmax:-cstep:cmin  % use only c coefficients  xform(ind(1:2^jmax-c)) = zeros(1,2^jmax-c);  y = HaarReconstruction(xform, normalization);  [xp, yp] = HaarCoords(y, 'max');  plot(axis1_x*hsize + rem(s,2)*hspacing, ...      axis1_y*vsize + (rows - fix(s/2) - 1)*vspacing, 'w');  plot(xinf*hsize + rem(s,2)*hspacing, ...      yinf*vsize + (rows - fix(s/2) - 1)*vspacing, ':w');  plot(xp*hsize + rem(s,2)*hspacing, ...      yp*vsize + (rows - fix(s/2) - 1)*vspacing, 'w', 'LineWidth', 2);  if nargin > 1    % Latex stuff:    disp(['      \putt{' num2str(hsize/2 + rem(s,2)*hspacing) ',' ...	    num2str(vspacing*(rows - fix(s/2) - 1.1)) ...	    '}{\small ' num2str(c) ' out of ' num2str(2^jmax) ...	    ' coefficients}']);  end;  s = s + 1;end;if nargin > 1  disp(['Saving EPS to "' filename '"...']);  print('-deps', filename);end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -