wolffd@0: function pretty_print_hhmm_parse(mpe, Qnodes, Fnodes, Onode, alphabet) wolffd@0: % function pretty_print_hhmm_parse(mpe, Qnodes, Fnodes, Onode, alphabet) wolffd@0: % wolffd@0: % mpe(i,t) is the most probable value of node i at time t wolffd@0: % Qnodes(1:D), Fnodes = [F2 .. FD], Onode contain the node ids wolffd@0: % alphabet(i) is the i'th output symbol, or [] if don't want displayed wolffd@0: wolffd@0: T = size(mpe,2); wolffd@0: ncols = 20; wolffd@0: t1 = 1; t2 = min(T, t1+ncols-1); wolffd@0: while (t1 < T) wolffd@0: %fprintf('%d:%d\n', t1, t2); wolffd@0: if iscell(mpe) wolffd@0: print_block_cell(mpe(:,t1:t2), Qnodes, Fnodes, Onode, alphabet, t1); wolffd@0: else wolffd@0: print_block(mpe(:,t1:t2), Qnodes, Fnodes, Onode, alphabet, t1); wolffd@0: end wolffd@0: fprintf('\n\n'); wolffd@0: t1 = t2+1; t2 = min(T, t1+ncols-1); wolffd@0: end wolffd@0: wolffd@0: %%%%%% wolffd@0: wolffd@0: function print_block_cell(mpe, Qnodes, Fnodes, Onode, alphabet, start) wolffd@0: wolffd@0: D = length(Qnodes); wolffd@0: T = size(mpe, 2); wolffd@0: fprintf('%3d ', start:start+T-1); fprintf('\n'); wolffd@0: for d=1:D wolffd@0: for t=1:T wolffd@0: if (d > 1) & (mpe{Fnodes(d-1),t} == 2) wolffd@0: fprintf('%3d|', mpe{Qnodes(d), t}); wolffd@0: else wolffd@0: fprintf('%3d ', mpe{Qnodes(d), t}); wolffd@0: end wolffd@0: end wolffd@0: fprintf('\n'); wolffd@0: end wolffd@0: if ~isempty(alphabet) wolffd@0: a = cell2num(mpe(Onode,:)); wolffd@0: %fprintf('%3c ', alphabet(mpe{Onode,:})); wolffd@0: fprintf('%3c ', alphabet(a)) wolffd@0: fprintf('\n'); wolffd@0: end wolffd@0: wolffd@0: wolffd@0: %%%%%% wolffd@0: wolffd@0: function print_block(mpe, Qnodes, Fnodes, Onode, alphabet, start) wolffd@0: wolffd@0: D = length(Qnodes); wolffd@0: T = size(mpe, 2); wolffd@0: fprintf('%3d ', start:start+T-1); fprintf('\n'); wolffd@0: for d=1:D wolffd@0: for t=1:T wolffd@0: if (d > 1) & (mpe(Fnodes(d-1),t) == 2) wolffd@0: fprintf('%3d|', mpe(Qnodes(d), t)); wolffd@0: else wolffd@0: fprintf('%3d ', mpe(Qnodes(d), t)); wolffd@0: end wolffd@0: end wolffd@0: fprintf('\n'); wolffd@0: end wolffd@0: if ~isempty(alphabet) wolffd@0: fprintf('%3c ', alphabet(mpe(Onode,:))); wolffd@0: fprintf('\n'); wolffd@0: end