bioandrandomplots.m

来自「稀疏PCA的优化解算法」· M 代码 · 共 62 行

M
62
字号
% Test code on various examplestic;clear all;if 0 % Random matricesp=75;m=100;k=m;kp=10;randn('state',33);% Generate random matrixF=randn(p,m)/sqrt(p); % Gaussian%F=sign(randn(p,m))/sqrt(p); % BernoulliS=F'*F;S=S+eye(size(S))*1e-14;[d,ix]=sort(diag(S),'descend');S=S(ix,ix);F=F(:,ix);endif 1 % Bio data eisenload EisenDataS=eisen2+eye(size(eisen2))*1e-14;[d,ix]=sort(diag(S),'descend');S=S(ix,ix);F=chol(S);k=size(S,1);kp=k;endif 0 % Bio data colonload CovColonS=covcolon+eye(size(covcolon))*1e-12;[d,ix]=sort(diag(S),'descend');S=S(ix,ix);F=chol(S);k=size(S,1);kp=k;endif 0 % Bio data lymphomaload LymphomaCov.matS=covlymph+eye(size(covlymph))*1e-10;[d,ix]=sort(diag(S),'descend');S=S(ix,ix);F=chol(S);k=size(S,1);kp=k;endif 1 % Compute lower and upper bound on variance[vars,rhobreaks,res]=FullPathCov(S);[bnds,rhov,dualvals]=UpperBounds(F,S,res(:,1:kp));toc;endif 1 % Plot with optimal points. Uncomment to merge multiple plotsepsr=1e-4;error=max(bnds(1:kp)-vars(1:kp),zeros(size(vars(1:kp))));optpi=find((error./vars(1:kp))<=epsr);optpv=vars(find((error./vars(1:kp))<=epsr));%errorl=max(bndsl-varsl(1:kp),zeros(size(vars(1:kp))));%optpil=find((errorl./varsl(1:kp))<=epsr);optpvl=varsl(find((errorl./varsl(1:kp))<=epsr));plot(1:kp,vars(1:kp),'-b',1:kp,bnds,':k','LineWidth',1.5);hold on;%plot(1:kp,varsl(1:kp),'-b',1:kp,bndsl,':k','LineWidth',1.5);%plot(optpil,optpvl,'b.','MarkerSize',20);plot(optpi,optpv,'b.','MarkerSize',20);xlabel('card');ylabel('var');%semilogy(error./vars,'bo');xlabel('Card');ylabel('Relative Error');axis([1 kp 1e-6 1e2]);end

⌨️ 快捷键说明

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