Code covered by the BSD License

Geodetic Toolbox

Mike Craymer (view profile)

13 Jun 2007 (Updated )

Toolbox for angle, coordinate and date conversions and transformations. Version 2.97.

[ax,az,inc]=errell3(C)
```function [ax,az,inc]=errell3(C)
% ERRELL3  Computes 3D error ellipsoid from covariance matrix.
%   Semi-axes lengths, azimuth, inclinations are ordered
%   from smallest to largest.  Note: x & y represent north
%   & south (opposite of normal MatLab convention).
% Version: 18 Jan 96
% Useage:  [ax,az,inc]=errell3(C)
% Input:   C  - covariance matrix (3D)
% Output:  a  - vector of semi-axes lengths
%          az - vector of semi-axes azimuths (rad)
%          inc- vector of semi-axes inclinations (rad)

% Copyright (c) 2011, Michael R. Craymer
% Email: mike@craymer.com

if nargin~=1
error('Wrong number of input arguments');
end
if (nargout~=3)
error('Wrong number of output arguments');
end
[V,D]=eig(C);            % Eigenvalues & vectors
[d,ind]=sort(diag(D));   % Sort eigenvalues
V=V(:,ind);              % and eigenvectors
%d=flipud(d);     % flip order to (max to min)
%V=flipud(V);
ax=sqrt(d);
az=atan2(V(2,:)',V(1,:)');
inc=asin(V(3,:)');
```