Mercurial > hg > trimatlab
view mt_resample.m @ 13:c0e75adddc95
Forgot to update one call to mc_global_info.
author | samer |
---|---|
date | Sun, 26 Feb 2012 23:15:59 +0000 |
parents | 0e0f2805ef9c |
children | a6d5597bd922 |
line wrap: on
line source
% mt_resample - Sample or resample melody triangle transition matrices of given size % % mt_resample :: % mt_system ~'initial system' % natural ~'size of transition matrices to resample' % -> action mt_system. % % A new set of transition matrices will be sampled and a 3D information space % scatter plot generated in the figure determined by the initial call to % mt_init. function Sys=mt_resample(Sys,K) figure(Sys.fig); cla; L=Sys.L; tol=Sys.tol; II=zeros(L,3); ok=zeros(1,L); title(sprintf('sampling %d transition matrices...',L)); drawnow; TT=Sys.sample_transmats(K,L); title(sprintf('checking (tolerance=%f)...',tol)); drawnow; for i=1:L, [II(i,:),ok(i)]=mc_global_info1(TT(:,:,i),tol); end todo=find(~ok); if Sys.ergmeth==1 while ~isempty(todo) title(sprintf('resampling %d nonergodic transition matrices...',length(todo))); drawnow; TT(:,:,todo)=Sys.sample_transmats(K,length(todo)); for i=todo, [II(i,:),ok(i)]=mc_global_info1(TT(:,:,i),tol); end todo=find(~ok); end else while ~isempty(todo) title(sprintf('perturbing %d nonergodic transition matrices...',length(todo))); drawnow; for i=todo, j=randnat(K); TT(:,j,i)=stoch(TT(:,j,i)+0.1); end for i=todo, [II(i,:),ok(i)]=mc_global_info1(TT(:,:,i),tol); end todo=find(~ok); end end Sys.transmats{K} = TT; Sys.info{K} = II; Sys.hScat{K} = scatc(II/log(2),II(:,3)/log(2),16); axis on; box on; grid off; lc=[0.4,0.4,0.4]; set(gca,'Color','none'); set(gca,'XColor',lc); set(gca,'YColor',lc); set(gca,'ZColor',lc); xlabel('entropy rate'); ylabel('redundancy'); zlabel('pred-info rate'); rotate3d on; end