annotate toolboxes/MIRtoolbox1.3.2/MIRToolbox/peaksegments.m @ 0:cc4b1211e677 tip

initial commit to HG from Changeset: 646 (e263d8a21543) added further path and more save "camirversion.m"
author Daniel Wolff
date Fri, 19 Aug 2016 13:07:06 +0200
parents
children
rev   line source
Daniel@0 1 function y = peaksegments(func,d,p,varargin)
Daniel@0 2
Daniel@0 3 y = cell(1,length(d));
Daniel@0 4 for h = 1:length(d)
Daniel@0 5 if not(iscell(d{h})) % for histograms
Daniel@0 6 p{h} = {p{h}(:,:,1)'};
Daniel@0 7 d{h} = {d{h}'};
Daniel@0 8 end
Daniel@0 9 for i = 1:length(d{h})
Daniel@0 10 %sum(var(p{h}{i},1,2))
Daniel@0 11 %p{h}{i} = repmat(p{h}{i}(:,1,1),[1,size(p{h}{i},2),size(p{h}{i},3)]);
Daniel@0 12 d{h}{i} = d{h}{i} + repmat(min(d{h}{i}),[size(d{h}{i},1),1,1]);
Daniel@0 13 for j = 1:size(d{h}{i},3)
Daniel@0 14 for k = 1:size(d{h}{i},2)
Daniel@0 15 yk = [];
Daniel@0 16 nb = 0;
Daniel@0 17 f = find(not(isnan(d{h}{i}(1:end,k,j))));
Daniel@0 18 while not(isempty(f))
Daniel@0 19 l = f(1);
Daniel@0 20 f = find(isnan(d{h}{i}(l:end,k,j)))+l-1;
Daniel@0 21 if isempty(f)
Daniel@0 22 f = size(d{h}{i},1)+1;
Daniel@0 23 end
Daniel@0 24 r = l:f(1)-1;
Daniel@0 25 if length(r)>1
Daniel@0 26 nb = nb+1;
Daniel@0 27 if nargin > 3
Daniel@0 28 for g = 1:length(varargin)
Daniel@0 29 if g == 1
Daniel@0 30 v{g} = repmat(varargin{g}{h}{i}{1,k,j}(nb),...
Daniel@0 31 [length(r),1,1]);
Daniel@0 32 else
Daniel@0 33 v{g} = varargin{g}{h}{i}{1,k,j}(nb);
Daniel@0 34 end
Daniel@0 35 end
Daniel@0 36 else
Daniel@0 37 v = {};
Daniel@0 38 end
Daniel@0 39 yk(nb,1) = func(abs(d{h}{i}(r,k,j)),...
Daniel@0 40 p{h}{i}(r,k,1),...
Daniel@0 41 v{:});
Daniel@0 42 end
Daniel@0 43 f = find(not(isnan(d{h}{i}(f(1):end,k,j))))+f(1)-1;
Daniel@0 44 end
Daniel@0 45 y{h}{i}{1,k,j} = yk;
Daniel@0 46 end
Daniel@0 47 end
Daniel@0 48 end
Daniel@0 49 end