?? plot_fit.m
字號:
function plot_fit(exp, fig, style, test, sub)% function plot_fit(exp, fig, style, test, sub)% This file is part of the TFPM toolbox v1.0 (c)% michael.jachan@tuwien.ac.at and underlies the GPL.% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(0)% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear;tfpm;exp= 'ord2A';fig= 99;style= '-';test= 0;sub= 1;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end;% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%re_im= 'i';mo_no= 'n';alpha= 1/2;beta = 1/2;rho= 1-log(12);%rho=0;M= 2;L= 2;MSEn= [];meanMn= [];meanLn= [];for n= 6:9 N= 2^n; resultname= sprintf('data/%04d/%s%d%d%s%s.mat', N, exp, M, L, re_im, mo_no); load(resultname) sprintf('%s%4d', resultname, MM) switch(exp(end)) case 'A' Ns= (2:(1+Mmax))'*(2*(0:Lmax)+1)-1; case 'B' Ns= (2:(1+Mmax))'*(2*(0:Lmax)+1)-1; case 'C' Ns= (2*(1:Mmax))'*(2*(0:Lmax)+1)-1; end;if(sub) ee = min(log(EE) , [], 3); eeprime= min(log(EEprime), [], 3);else ee = log(EE(:, :, 1, :)); eeprime= log(EEprime(:, :, 1, :));end; MDLhist= zeros(Mmax, Lmax+1); BIChist= zeros(Mmax, Lmax+1); AIChist= zeros(Mmax, Lmax+1); GIChist= zeros(Mmax, Lmax+1); MIChist= zeros(Mmax, Lmax+1); mdlhist= zeros(Mmax, Lmax+1); bichist= zeros(Mmax, Lmax+1); aichist= zeros(Mmax, Lmax+1); gichist= zeros(Mmax, Lmax+1); michist= zeros(Mmax, Lmax+1); for mm= 1:MM e= ee(:, :, 1, mm); eprime= eeprime(:, :, 1, mm); MDL= eprime + (log(N+1)+rho) *(Ns+1/2)/N; BIC= eprime + log(N) *(Ns )/N; AIC= eprime + 2 *(Ns )/N; GIC= eprime + (2+rho) *(Ns )/N; MIC= eprime + (1+rho+log(N)/2)*(Ns )/N; mdl= e + (log(N+1)+rho) *(Ns+1/2)/N; bic= e + log(N) *(Ns )/N; aic= e + 2 *(Ns )/N; gic= e + (2+rho) *(Ns )/N; mic= e + (1+rho+log(N)/2)*(Ns )/N; [MMDL, LMDL] = find(MDL==min(min(MDL)));LMDL= LMDL-1; [MBIC, LBIC] = find(BIC==min(min(BIC)));LBIC= LBIC-1; [MAIC, LAIC] = find(AIC==min(min(AIC)));LAIC= LAIC-1; [MGIC, LGIC] = find(GIC==min(min(GIC)));LGIC= LGIC-1; [MMIC, LMIC] = find(MIC==min(min(MIC)));LMIC= LMIC-1; [Mmdl, Lmdl] = find(mdl==min(min(mdl)));Lmdl= Lmdl-1; [Mbic, Lbic] = find(bic==min(min(bic)));Lbic= Lbic-1; [Maic, Laic] = find(aic==min(min(aic)));Laic= Laic-1; [Mgic, Lgic] = find(gic==min(min(gic)));Lgic= Lgic-1; [Mmic, Lmic] = find(mic==min(min(mic)));Lmic= Lmic-1;% [N M L mm MMDL, LMDL, MBIC, LBIC, MAIC, LAIC, MGIC, LGIC, MMIC, LMIC]% [N M L mm Mmdl, Lmdl, Mbic, Lbic, Maic, Laic, Mgic, Lgic, Mmic, Lmic] MDLhist(MMDL, LMDL+1)= MDLhist(MMDL, LMDL+1) + 1; BIChist(MBIC, LBIC+1)= BIChist(MBIC, LBIC+1) + 1; AIChist(MAIC, LAIC+1)= AIChist(MAIC, LAIC+1) + 1; GIChist(MGIC, LGIC+1)= GIChist(MGIC, LGIC+1) + 1; MIChist(MMIC, LMIC+1)= MIChist(MMIC, LMIC+1) + 1; mdlhist(Mmdl, Lmdl+1)= mdlhist(Mmdl, Lmdl+1) + 1; bichist(Mbic, Lbic+1)= bichist(Mbic, Lbic+1) + 1; aichist(Maic, Laic+1)= aichist(Maic, Laic+1) + 1; gichist(Mgic, Lgic+1)= gichist(Mgic, Lgic+1) + 1; michist(Mmic, Lmic+1)= michist(Mmic, Lmic+1) + 1; end; MDLM= sum(MDLhist.').';MDLL= sum(MDLhist); BICM= sum(BIChist.').';BICL= sum(BIChist); AICM= sum(AIChist.').';AICL= sum(AIChist); GICM= sum(GIChist.').';GICL= sum(GIChist); MICM= sum(MIChist.').';MICL= sum(MIChist); mdlM= sum(mdlhist.').';mdlL= sum(mdlhist); bicM= sum(bichist.').';bicL= sum(bichist); aicM= sum(aichist.').';aicL= sum(aichist); gicM= sum(gichist.').';gicL= sum(gichist); micM= sum(michist.').';micL= sum(michist);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(0)% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%figure(n);clf;subplot(4, 2, 1);bar(MDLM, 1);axis([.5 Mmax+0.5 0 MM])subplot(4, 2, 2);bar(MDLL, 1);axis([.5 Lmax+1.5 0 MM])set(gca, 'XTick', 1:Lmax+1)set(gca, 'XTickLabel', 0:Lmax)subplot(4, 2, 3);bar(BICM, 1);axis([.5 Mmax+0.5 0 MM])subplot(4, 2, 4);bar(BICL, 1);axis([.5 Lmax+1.5 0 MM])set(gca, 'XTick', 1:Lmax+1)set(gca, 'XTickLabel', 0:Lmax)subplot(4, 2, 5);bar(AICM, 1);axis([.5 Mmax+0.5 0 MM])subplot(4, 2, 6);bar(AICL, 1);axis([.5 Lmax+1.5 0 MM])set(gca, 'XTick', 1:Lmax+1)set(gca, 'XTickLabel', 0:Lmax)subplot(4, 2, 7);bar(GICM, 1);axis([.5 Mmax+0.5 0 MM])subplot(4, 2, 8);bar(GICL, 1);axis([.5 Lmax+1.5 0 MM])set(gca, 'XTick', 1:Lmax+1)set(gca, 'XTickLabel', 0:Lmax)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end;% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mean= [ sum((1:Mmax)'.*MDLM)/MM; sum((1:Mmax)'.*BICM)/MM; sum((1:Mmax)'.*AICM)/MM; sum((1:Mmax)'.*GICM)/MM; sum((1:Mmax)'.*MICM)/MM; sum((1:Mmax)'.*mdlM)/MM; sum((1:Mmax)'.*bicM)/MM; sum((1:Mmax)'.*aicM)/MM; sum((1:Mmax)'.*gicM)/MM; sum((1:Mmax)'.*micM)/MM; ];meanMn= [meanMn mean];mean= [ sum((0:Lmax).*MDLL)/MM; sum((0:Lmax).*BICL)/MM; sum((0:Lmax).*AICL)/MM; sum((0:Lmax).*GICL)/MM; sum((0:Lmax).*MICL)/MM; sum((0:Lmax).*mdlL)/MM; sum((0:Lmax).*bicL)/MM; sum((0:Lmax).*aicL)/MM; sum((0:Lmax).*gicL)/MM; sum((0:Lmax).*micL)/MM; ];meanLn= [meanLn mean];mse= [ 10*log10((sum(((1:Mmax)'-M).^2.*MDLM) + sum(((0:Lmax)-L).^2.*MDLL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*BICM) + sum(((0:Lmax)-L).^2.*BICL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*AICM) + sum(((0:Lmax)-L).^2.*AICL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*GICM) + sum(((0:Lmax)-L).^2.*GICL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*MICM) + sum(((0:Lmax)-L).^2.*MICL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*mdlM) + sum(((0:Lmax)-L).^2.*mdlL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*bicM) + sum(((0:Lmax)-L).^2.*bicL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*aicM) + sum(((0:Lmax)-L).^2.*aicL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*gicM) + sum(((0:Lmax)-L).^2.*gicL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*micM) + sum(((0:Lmax)-L).^2.*micL))/MM/(M^2+L^2)); ]; MSEn= [MSEn mse]; drawnowendN= 256;L= 2;MSEm= [];meanMm= [];meanLm= [];for M= 2:5 resultname= sprintf('data/%04d/%s%d%d%s%s.mat', N, exp, M, L, re_im, mo_no); load(resultname) sprintf('%s%4d', resultname, MM) switch(exp(end)) case 'A' Ns= (2:(1+Mmax))'*(2*(0:Lmax)+1)-1; case 'B' Ns= (2:(1+Mmax))'*(2*(0:Lmax)+1)-1; case 'C' Ns= (2*(1:Mmax))'*(2*(0:Lmax)+1)-1; end; if(sub) ee = min(log(EE) , [], 3); eeprime= min(log(EEprime), [], 3);else ee = log(EE(:, :, 1, :)); eeprime= log(EEprime(:, :, 1, :));end; MDLhist= zeros(Mmax, Lmax+1); BIChist= zeros(Mmax, Lmax+1); AIChist= zeros(Mmax, Lmax+1); GIChist= zeros(Mmax, Lmax+1); MIChist= zeros(Mmax, Lmax+1); mdlhist= zeros(Mmax, Lmax+1); bichist= zeros(Mmax, Lmax+1); aichist= zeros(Mmax, Lmax+1); gichist= zeros(Mmax, Lmax+1); michist= zeros(Mmax, Lmax+1); for mm= 1:MM e= ee(:, :, 1, mm); eprime= eeprime(:, :, 1, mm); MDL= eprime + (log(N+1)+rho) *(Ns+1/2)/N; BIC= eprime + log(N) *(Ns )/N; AIC= eprime + 2 *(Ns )/N; GIC= eprime + (2+rho) *(Ns )/N; MIC= eprime + (1+rho+log(N)/2)*(Ns )/N; mdl= e + (log(N+1)+rho) *(Ns+1/2)/N; bic= e + log(N) *(Ns )/N; aic= e + 2 *(Ns )/N; gic= e + (2+rho) *(Ns )/N; mic= e + (1+rho+log(N)/2)*(Ns )/N; [MMDL, LMDL] = find(MDL==min(min(MDL)));LMDL= LMDL-1; [MBIC, LBIC] = find(BIC==min(min(BIC)));LBIC= LBIC-1; [MAIC, LAIC] = find(AIC==min(min(AIC)));LAIC= LAIC-1; [MGIC, LGIC] = find(GIC==min(min(GIC)));LGIC= LGIC-1; [MMIC, LMIC] = find(MIC==min(min(MIC)));LMIC= LMIC-1; [Mmdl, Lmdl] = find(mdl==min(min(mdl)));Lmdl= Lmdl-1; [Mbic, Lbic] = find(bic==min(min(bic)));Lbic= Lbic-1; [Maic, Laic] = find(aic==min(min(aic)));Laic= Laic-1; [Mgic, Lgic] = find(gic==min(min(gic)));Lgic= Lgic-1; [Mmic, Lmic] = find(mic==min(min(mic)));Lmic= Lmic-1;% [N M L mm MMDL, LMDL, MBIC, LBIC, MAIC, LAIC, MGIC, LGIC, MMIC, LMIC]% [N M L mm Mmdl, Lmdl, Mbic, Lbic, Maic, Laic, Mgic, Lgic, Mmic, Lmic] MDLhist(MMDL, LMDL+1)= MDLhist(MMDL, LMDL+1) + 1; BIChist(MBIC, LBIC+1)= BIChist(MBIC, LBIC+1) + 1; AIChist(MAIC, LAIC+1)= AIChist(MAIC, LAIC+1) + 1; GIChist(MGIC, LGIC+1)= GIChist(MGIC, LGIC+1) + 1; MIChist(MMIC, LMIC+1)= MIChist(MMIC, LMIC+1) + 1; mdlhist(Mmdl, Lmdl+1)= mdlhist(Mmdl, Lmdl+1) + 1; bichist(Mbic, Lbic+1)= bichist(Mbic, Lbic+1) + 1; aichist(Maic, Laic+1)= aichist(Maic, Laic+1) + 1; gichist(Mgic, Lgic+1)= gichist(Mgic, Lgic+1) + 1; michist(Mmic, Lmic+1)= michist(Mmic, Lmic+1) + 1; end; MDLM= sum(MDLhist.').';MDLL= sum(MDLhist); BICM= sum(BIChist.').';BICL= sum(BIChist); AICM= sum(AIChist.').';AICL= sum(AIChist); GICM= sum(GIChist.').';GICL= sum(GIChist); MICM= sum(MIChist.').';MICL= sum(MIChist); mdlM= sum(mdlhist.').';mdlL= sum(mdlhist); bicM= sum(bichist.').';bicL= sum(bichist); aicM= sum(aichist.').';aicL= sum(aichist); gicM= sum(gichist.').';gicL= sum(gichist); micM= sum(michist.').';micL= sum(michist);mean= [ sum((1:Mmax)'.*MDLM)/MM; sum((1:Mmax)'.*BICM)/MM; sum((1:Mmax)'.*AICM)/MM; sum((1:Mmax)'.*GICM)/MM; sum((1:Mmax)'.*MICM)/MM; sum((1:Mmax)'.*mdlM)/MM; sum((1:Mmax)'.*bicM)/MM; sum((1:Mmax)'.*aicM)/MM; sum((1:Mmax)'.*gicM)/MM; sum((1:Mmax)'.*micM)/MM; ];meanMm= [meanMm mean];mean= [ sum((0:Lmax).*MDLL)/MM; sum((0:Lmax).*BICL)/MM; sum((0:Lmax).*AICL)/MM; sum((0:Lmax).*GICL)/MM; sum((0:Lmax).*MICL)/MM; sum((0:Lmax).*mdlL)/MM; sum((0:Lmax).*bicL)/MM; sum((0:Lmax).*aicL)/MM; sum((0:Lmax).*gicL)/MM; sum((0:Lmax).*micL)/MM; ];meanLm= [meanLm mean]; mse= [ 10*log10((sum(((1:Mmax)'-M).^2.*MDLM) + sum(((0:Lmax)-L).^2.*MDLL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*BICM) + sum(((0:Lmax)-L).^2.*BICL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*AICM) + sum(((0:Lmax)-L).^2.*AICL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*GICM) + sum(((0:Lmax)-L).^2.*GICL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*MICM) + sum(((0:Lmax)-L).^2.*MICL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*mdlM) + sum(((0:Lmax)-L).^2.*mdlL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*bicM) + sum(((0:Lmax)-L).^2.*bicL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*aicM) + sum(((0:Lmax)-L).^2.*aicL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*gicM) + sum(((0:Lmax)-L).^2.*gicL))/MM/(M^2+L^2)); 10*log10((sum(((1:Mmax)'-M).^2.*micM) + sum(((0:Lmax)-L).^2.*micL))/MM/(M^2+L^2)); ]; MSEm= [MSEm mse]; drawnowend;N= 256;M= 2;MSEl= [];meanMl= [];meanLl= [];for L= 0:3 resultname= sprintf('data/%04d/%s%d%d%s%s.mat', N, exp, M, L, re_im, mo_no); load(resultname) sprintf('%s%4d', resultname, MM) switch(exp(end))
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -