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