function m = mymedian(x)
% returns the median of the vector x
  xs = sort(x);
  if length(xs) == 0                 % empty input vector
    m = NaN;
  elseif rem(length(xs), 2) == 0     % even number of data values
    index = length(xs)/2;
    m = (xs(index) + xs(index+1))/2; % average the two central elements
  else                               % odd number of data values
    index = (length(xs) + 1)/2;      % take the middle element
    m = xs(index);
  end
end