wolffd@0: function plot_square_hhmm(ev) wolffd@0: % Plot the square shape implicit in the evidence. wolffd@0: % ev{i,t} is the value of node i in slice t. wolffd@0: % The observed node contains a velocity (delta increment), which is converted wolffd@0: % into a position. wolffd@0: % The Q2 node specifies which model is used; each segment is color-coded wolffd@0: % in the order red, green, blue, black. wolffd@0: wolffd@0: Q1 = 1; Q2 = 2; Q3 = 3; F3 = 4; F2 = 5; Onode = 6; wolffd@0: wolffd@0: delta = cell2num(ev(Onode,:)); % delta(:,t) wolffd@0: Q2label = cell2num(ev(Q2,:)); wolffd@0: wolffd@0: T = size(delta, 2); wolffd@0: pos = zeros(2,T+1); wolffd@0: clf wolffd@0: hold on wolffd@0: cols = {'r', 'g', 'b', 'k'}; wolffd@0: boundary = 0; wolffd@0: coli = 1; wolffd@0: for t=2:T+1 wolffd@0: pos(:,t) = pos(:,t-1) + delta(:,t-1); wolffd@0: plot(pos(1,t), pos(2,t), sprintf('%c.', cols{coli})); wolffd@0: if t < T wolffd@0: boundary = (Q2label(t) ~= Q2label(t-1)); wolffd@0: end wolffd@0: if boundary wolffd@0: coli = coli + 1; wolffd@0: coli = mod(coli-1, length(cols)) + 1; wolffd@0: end wolffd@0: end wolffd@0: