function showmat(X,smooth,gridon) %SHOWMAT xxxx % [W V TXT] = FORMATVOCAB(VOC,D,K) % Lorem ipsum. %X=X(end:-1:1,end:-1:1); %X=X(:,end:-1:1); z = ceil(max(max(X))); [M N]=size(X); if nargin==1 gridon = 1; smooth = 0; elseif nargin==2 gridon = 1; elseif nargin==3 else error('incorrect arguments'); end if smooth Y=zeros(M+2,N+2); Y(2:(end-1),2:(end-1)) = X(end:-1:1,:); % copy first and last row Y(1,:) = Y(2,:); Y(end,:) = Y(end-1,:); % copy first and last column Y(:,1) = Y(:,2); Y(:,end) = Y(:,end-1); surf(Y); axis([1.5 N+1.5 1.5 M+1.5]) if gridon==1 hold on; for i=0:N, plot3(i+[1.5 1.5],[1.5 M+1.5],[z z],'k-'); end for i=1:M+1, plot3([1.5 N+1.5],i+[.5 .5],[z z],'k-'); end end set(gca, 'XTick',1.5:.5:(N+1.5)); set(gca, 'XLim',[1.5 N+1.5]); set(gca, 'YTick',1.5:.5:(M+1.5)); set(gca, 'YLim',[1.5 M+1.5]); shading('interp'); else Y = X(end:-1:1,:); Y(end+1,end+1) = 0; surf(Y); set(gca, 'XTick',1:.5:(N+1)); set(gca, 'XLim',[1 N+1]); set(gca, 'YTick',1:.5:(M+1)); set(gca, 'YLim',[1 M+1]); if gridon==0 shading('flat'); end end xlabels={''}; for i=1:N %xlabels{i} = num2str(i); xlabels{2*i} = num2str(i); xlabels{2*i+1} = ''; end set(gca,'XTickLabel',xlabels); ylabels={''}; for i=1:M %ylabels{i} = num2str(M-i+1); ylabels{2*i} = num2str(M-i+1); ylabels{2*i+1} = ''; end set(gca,'YTickLabel',ylabels) view([0 90]); colorbar;