function [mu ul ll] = circ_mean(alpha, w, dim) % % mu = circ_mean(alpha, w) % Computes the mean direction for circular data. % % Input: % alpha sample of angles in radians % [w weightings in case of binned angle data] % [dim compute along this dimension, default is 1] % % If dim argument is specified, all other optional arguments can be % left empty: circ_mean(alpha, [], dim) % % Output: % mu mean direction % ul upper 95% confidence limit % ll lower 95% confidence limit % % PHB 7/6/2008 % % References: % Statistical analysis of circular data, N. I. Fisher % Topics in circular statistics, S. R. Jammalamadaka et al. % Biostatistical Analysis, J. H. Zar % % Circular Statistics Toolbox for Matlab % By Philipp Berens, 2009 % berens@tuebingen.mpg.de - www.kyb.mpg.de/~berens/circStat.html if nargin < 3 dim = 1; end if nargin < 2 || isempty(w) % if no specific weighting has been specified % assume no binning has taken place w = ones(size(alpha)); else if size(w,2) ~= size(alpha,2) || size(w,1) ~= size(alpha,1) error('Input dimensions do not match'); end end % compute weighted sum of cos and sin of angles r = sum(w.*exp(1i*alpha),dim); % obtain mean by mu = angle(r); % confidence limits if desired if nargout > 1 t = circ_confmean(alpha,0.05,w, [], dim); ul = mu + t; ll = mu - t; end