12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- function [p alpha] = circ_vmpdf(alpha, thetahat, kappa)
- % [p alpha] = circ_vmpdf(alpha, w, p)
- % Computes the circular von Mises pdf with preferred direction thetahat
- % and concentration kappa at each of the angles in alpha
- %
- % The vmpdf is given by f(phi) =
- % (1/(2pi*I0(kappa))*exp(kappa*cos(phi-thetahat)
- %
- % Input:
- % alpha angles to evaluate pdf at, if empty alphas are chosen to
- % 100 uniformly spaced points around the circle
- % [thetahat preferred direction, default is 0]
- % [kappa concentration parameter, default is 1]
- %
- % Output:
- % p von Mises pdf evaluated at alpha
- % alpha angles at which pdf was evaluated
- %
- %
- % References:
- % Statistical analysis of circular data, Fisher
- %
- % Circular Statistics Toolbox for Matlab
- % By Philipp Berens and Marc J. Velasco, 2009
- % velasco@ccs.fau.edu
- % if no angles are supplied, 100 evenly spaced points around the circle are
- % chosen
- if nargin < 1 || isempty(alpha)
- alpha = linspace(0, 2*pi, 101)';
- alpha = alpha(1:end-1);
- end
- if nargin < 3
- kappa = 1;
- end
- if nargin < 2
- thetahat = 0;
- end
- alpha = alpha(:);
- % evaluate pdf
- C = 1./(2*pi*besseli(0,kappa));
- p = C .* exp(kappa.*cos(alpha-thetahat));
|