function xmax=findpeaks(data,threshold)
% Helper function to find peaks in a given continuous valued time series x
% Usage: xmax=findpeaks(data,threshold)
% Input:
%      data     (data in time x channels/trials form or a single vector)
%      threshold (if specified returns locations of peaks at which data exceeds threshold) - optional
% Output:
%      xmax     (locations of local maxima of data in a structure array of dimensions channels/trials)
if nargin < 1; error('Need data'); end;
data=change_row_to_column(data);
C=size(data,2);
pp1=[data(1,:);data(1:end-1,:)];
pp2=[data(2:end,:);data(end,:)];
xmax(1:C)=struct('loc',[]);
% for ch=1:C,
%    if nargin ==1
%      xmax(ch).loc=[xmax(ch).loc; find(data(:,ch)-pp1(:,ch)>0 & data(:,ch)-pp2(:,ch)>0)];
%    else
%      xmax(ch).loc=[xmax(ch).loc; find(data(:,ch)-pp1(:,ch)>0 & data(:,ch)-pp2(:,ch)>0 & data(:,ch)>threshold)];
%    end
% end

for ch=1:C,
   if nargin ==1
     xmax(ch).loc=[xmax(ch).loc; find(data(:,ch)-pp1(:,ch)>=0 & data(:,ch)-pp2(:,ch)>=0)];
   else
     xmax(ch).loc=[xmax(ch).loc; find(data(:,ch)-pp1(:,ch)>=0 & data(:,ch)-pp2(:,ch)>=0 & data(:,ch)>=threshold)];
   end
end