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

📄 figure_6.m

📁 这是一个压缩传感方面的Gradient Projection for Sparse Reconstruction 工具包。
💻 M
字号:
close allclear all% signal lengthn = 2^13;% number of spikes to put down% n_spikes = floor(.01*n);n_spikes = 100;% number of observations to makek = 2^9;% random +/- 1 signalf = zeros(n,1);q = randperm(n);f(q(1:n_spikes)) = sign(randn(n_spikes,1));%f(q(1:n_spikes)) = randn(n_spikes,1);% measurement matrixdisp('Creating measurement matrix...');R = randn(k,n);R = orth(R')';disp('Done.');% noisy observationssigma = 0.01;y = R*f + sigma*randn(k,1);taus = [0.05:0.025:0.275]*max(abs(R'*y));trials = 10;iters = [];warm_durations = [];nz = [];cold_iters = [];cold_durations = [];debias = 0;stopCri = 3;tolA = 0.001;for i=1:length(taus)        cold_durations(i) = 0;    warm_durations(i) = 0;    for tr = 1:trials        if i==1           init = 0;        else           init = theta;        end        [theta,theta_debias,obj,times,debias_start,mses]= ...                 GPSR_BB(y,R,taus(i),...                 'Debias',debias,...                 'AT',R',... %'TrueTheta',f,...                 'Monotone',1,...                 'Initialization',init,...                 'StopCriterion',stopCri,...                 'ToleranceA',tolA,...                 'ToleranceD',0.0001);        iters(i) = length(times);             warm_durations(i) =  warm_durations(i) + times(end);        [theta,theta_debias,obj,times2,debias_start,mses]= ...                 GPSR_BB(y,R,taus(i),...                 'Debias',debias,...                 'AT',R',... %'TrueTheta',f,...                 'Monotone',1,...                 'Initialization',0,...                 'StopCriterion',stopCri,...                 'ToleranceA',tolA,...                 'ToleranceD',0.0001);        if i==1           cold_iters(i) = iters(i);                cold_durations(i) =  cold_durations(i) + times(end);        else           cold_iters(i) = length(times);                cold_durations(i) =  cold_durations(i) + times2(end);        end    endendcold_durations = cold_durations / trials;warm_durations = warm_durations / trials;% ================= Plotting results ==========figure(1)plot(taus,cold_durations,'bs')hold onplot(taus,warm_durations,'r*')hold offlegend('Cold start','Warm start')set(gca,'FontName','Times')set(gca,'FontSize',14)title('Warm versus cold start')xlabel('Value of \tau')ylabel('CPU time')

⌨️ 快捷键说明

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