wolffd@0: function display(m) wolffd@0: % DISSIMATRIX/DISPLAY display of a dissimilarity matrix wolffd@0: disp(' '); wolffd@0: d = get(m,'Data'); wolffd@0: nam = get(m,'Name'); wolffd@0: fp = get(m,'FramePos'); wolffd@0: cha = get(m,'Channels'); wolffd@0: t = get(m,'Title'); wolffd@0: tp = get(m,'TrackPos'); wolffd@0: tv = get(m,'TrackVal'); wolffd@0: pp = get(m,'PeakPos'); wolffd@0: g = get(m,'Graph'); wolffd@0: b = get(m,'Branch'); wolffd@0: for i = 1:length(d) wolffd@0: if iscell(d{i}) wolffd@0: d{i} = d{i}{1}; wolffd@0: end wolffd@0: l = size(d{1},3); % Number of channels wolffd@0: il = (1-0.15)/l; wolffd@0: figure wolffd@0: for k = 1:l % For each channel wolffd@0: if l>1 wolffd@0: subplot('Position',[0.1 (k-1)*il+0.1 0.89 il-0.02]) wolffd@0: end wolffd@0: fpi = cell2mat(fp{i}); wolffd@0: if size(fpi,1) == 2 wolffd@0: fpi = (fpi(1,:,:,:)+fpi(2,:,:,:))/2; wolffd@0: end wolffd@0: if strcmp(m.view,'l') wolffd@0: h = imagesc(fpi,fpi(1:size(d{i},1))-fpi(1),d{i}(:,:,k)); wolffd@0: else wolffd@0: h = imagesc(fpi,fpi,d{i}(:,:,k)); wolffd@0: end wolffd@0: if not(isempty(g)) wolffd@0: hold on wolffd@0: pi = cell(1,size(g{i}{1},2)); wolffd@0: for j = 1:size(g{i}{1},2) wolffd@0: pi{j} = sort(pp{i}{1}{j}); wolffd@0: end wolffd@0: for j = 1:size(g{i}{1},2) wolffd@0: for h = 1:length(g{i}{1}{1,j,l}) wolffd@0: next = g{i}{1}{1,j,l}{h}; wolffd@0: if length(next)>1 wolffd@0: for n = 1:size(next,1) wolffd@0: plot([fpi(j) fpi(next(n,1))],... wolffd@0: [fpi(pi{j}(h)) - fpi(1), ... wolffd@0: fpi(pi{next(n,1)}(next(n,2))) - fpi(1)],... wolffd@0: 'k','LineWidth',1) wolffd@0: %plot([fpi(j) fpi(next(n,1))],... wolffd@0: % [fpi(pi{j}(h)) - fpi(1), ... wolffd@0: % fpi(pi{next(n,1)}(next(n,2))) - fpi(1)],... wolffd@0: % 'w+','MarkerSize',10) wolffd@0: plot([fpi(j) fpi(next(n,1))],... wolffd@0: [fpi(pi{j}(h)) - fpi(1), ... wolffd@0: fpi(pi{next(n,1)}(next(n,2))) - fpi(1)],... wolffd@0: 'kx','MarkerSize',10) wolffd@0: end wolffd@0: end wolffd@0: end wolffd@0: end wolffd@0: bi = b{i}{1}{1}; wolffd@0: for j = 1:size(bi,1)-1 wolffd@0: plot([fpi(bi(j,1)) fpi(bi(j+1,1))],... wolffd@0: [fpi(pi{bi(j,1)}(bi(j,2))) - fpi(1), ... wolffd@0: fpi(pi{bi(j+1,1)}(bi(j+1,2))) - fpi(1)],... wolffd@0: 'w','LineWidth',1.5) wolffd@0: plot([fpi(bi(j,1)) fpi(bi(j+1,1))],... wolffd@0: [fpi(pi{bi(j,1)}(bi(j,2))) - fpi(1), ... wolffd@0: fpi(pi{bi(j+1,1)}(bi(j+1,2))) - fpi(1)],... wolffd@0: 'w+','MarkerSize',15) wolffd@0: plot([fpi(bi(j,1)) fpi(bi(j+1,1))],... wolffd@0: [fpi(pi{bi(j,1)}(bi(j,2))) - fpi(1), ... wolffd@0: fpi(pi{bi(j+1,1)}(bi(j+1,2))) - fpi(1)],... wolffd@0: 'kx','MarkerSize',15) wolffd@0: end wolffd@0: elseif not(isempty(tp)) && not(isempty(tp{i})) wolffd@0: hold on wolffd@0: for k = 1:size(tp{i}{1}{1},1) wolffd@0: prej = 0; wolffd@0: for j = 1:size(tp{i}{1}{1},2) wolffd@0: if tv{i}{1}{1}(k,j) wolffd@0: if prej% && not(isempty(tp(k,j))) wolffd@0: plot([fpi(prej) fpi(j)],... wolffd@0: [fpi(tp{i}{1}{1}(k,prej)) - fpi(1) ... wolffd@0: fpi(tp{i}{1}{1}(k,j)) - fpi(1)],... wolffd@0: 'k','LineWidth',1) wolffd@0: plot([fpi(prej) fpi(j)],... wolffd@0: [fpi(tp{i}{1}{1}(k,prej)) - fpi(1) ... wolffd@0: fpi(tp{i}{1}{1}(k,j)) - fpi(1)],... wolffd@0: 'w+','MarkerSize',10) wolffd@0: plot([fpi(prej) fpi(j)],... wolffd@0: [fpi(tp{i}{1}{1}(k,prej)) - fpi(1) ... wolffd@0: fpi(tp{i}{1}{1}(k,j)) - fpi(1)],... wolffd@0: 'kx','MarkerSize',10) wolffd@0: end wolffd@0: prej = j; wolffd@0: end wolffd@0: end wolffd@0: end wolffd@0: elseif not(isempty(pp)) && not(isempty(pp{i})) wolffd@0: hold on wolffd@0: for k = 1:length(pp{i}{1}) wolffd@0: for j = 1:length(pp{i}{1}{k}) wolffd@0: plot(fpi(k),fpi(pp{i}{1}{k}(j)) - fpi(1), ... wolffd@0: 'w+','MarkerSize',10) wolffd@0: end wolffd@0: end wolffd@0: end wolffd@0: set(gca,'YDir','normal') wolffd@0: if k == l wolffd@0: title(t) wolffd@0: end wolffd@0: if k == 1 wolffd@0: xlabel('temporal location of frame centers (in s.)') wolffd@0: end wolffd@0: if k == ceil(l/2) wolffd@0: if strcmp(m.view,'h') wolffd@0: ylabel('relative distance between compared frames (in s.)') wolffd@0: elseif strcmp(m.view,'l') wolffd@0: ylabel('temporal lag (in s.)') wolffd@0: else wolffd@0: ylabel('temporal location of frame centers (in s.)') wolffd@0: end wolffd@0: end wolffd@0: if l > 1 wolffd@0: pos = get(gca,'Position'); wolffd@0: hfig = axes('Position',[pos(1)-.05 pos(2)+pos(4)/2 .01 .01],... wolffd@0: 'Visible','off'); wolffd@0: text(0,0,num2str(cha{i}(k)),'FontSize',12,'Color','r') wolffd@0: end wolffd@0: end wolffd@0: fig = get(0,'CurrentFigure'); wolffd@0: disp(['The ',t,' related to file ',nam{i},' is displayed in Figure ',num2str(fig),'.']); wolffd@0: end wolffd@0: disp(' '); wolffd@0: drawnow