function [nstages] = dotpattern(mat,name); %dot pattern nstages=size(mat,1); clear yvalues ytick; for i=1:nstages yvalues(i,:)=[num2str(i)]; %string labels ytick(i)=i; %numeric values stagelegend(i,:)=[num2str(i)]; end ; dotsize=[100 85 70 55 40 25 10 5 1]; %defines dot sizes dotsize=dotsize;% could be used to rescale for multiple figures on page % get the structure of the matrix by magnitudes of a(ij) mats=zeros(nstages,nstages,length(dotsize)); mat=mat; mats(:,:,1) = mat>=1; mats(:,:,2) = (mat>=.75 & mat<1); mats(:,:,3) = (mat>=.50 & mat<.75); mats(:,:,4) = (mat>=.25 & mat<.5); mats(:,:,5) = (mat>=.1 & mat<.25); mats(:,:,6) = (mat>=0.01 & mat<.1); mats(:,:,7) = (mat>=0.001 & mat<.01); mats(:,:,8) = (mat>=0.0001 & mat<.001); mats(:,:,9) = (mat<0.0001 & mat>0); matdiag = eye(nstages); figure% for i=1:length(dotsize) spy(mats(:,:,i),dotsize(i)); %makes the dots black hold on; end; %spy(matdiag,30); %mark the diagonal with white plus text(nstages-1,0.5,name,'FontSize',12); %xvalues=yvalues; set(gca,'XTick',ytick); set(gca,'XTickLabel',{yvalues},'FontName','Helvetica','FontSize',10) set(gca,'YTick',ytick); set(gca,'YTickLabel',{yvalues},'FontName','Helvetica','FontSize',10) xlabel('Stage at time t','FontSize',12) ylabel('Stage at time t+1','FontSize',12) hold off;