Home > freetb4matlab > vrml > best_dir.m

# best_dir

## PURPOSE

% [d,w,rx,cv,wx] = best_dir( x, [a , sx ] )

## SYNOPSIS

function [d,w,rx,cv,wx] = best_dir( x, a, sx )

## DESCRIPTION

```%       [d,w,rx,cv,wx] = best_dir( x, [a , sx ] )
%
% Some points  x,  are observed and one assumes that they belong to
% parallel planes. There is an unknown direction  d  s.t. for each
% point  x(i,:), one has :
%
%         x(i,:)*d == w(j(i)) + noise
%
% where j is known(given by the matrix  a ), but  w  is unknown.
%
% Under the assumption that the error on  x  are i.i.d. gaussian,
% best_dir returns the maximum likelihood estimate of  d  and  w.
%
% This function is slower when cv is returned.
%
% INPUT :
% -------
% x  : D x P    P points. Each one is the sum of a point that belongs
%               to a plane and a noise term.
%
% a  : P x W    0-1 matrix describing association of points (rows of
%               x) to planes :
%
%           a(p,i) == 1 iff point x(p,:) belongs to the i'th plane.
%
%                                                Default is ones(P,1)
%
% sx : P x 1    Covariance of x(i,:) is sx(i)*eye(D).
%                                                Default is ones(P,1)
% OUTPUT :
% --------
% d  : D x 1    All the planes have the same normal, d. d has unit
%               norm.
%
% w  : W x 1    The i'th plane is { y | y*d = w(i) }.
%
% rx : P x 1    Residuals of projection of points to corresponding plane.
%
%
%               Assuming that the covariance of  x  (i.e. sx) was known
%               only up to a scale factor, an estimate of the
%               covariance of  x  and  [w;d]  are
%
%                 sx * mean(rx.^2)/mean(sx)       and
%                 cv * mean(rx.^2)/mean(sx),  respectively.
%
% cv : (D+W)x(D+W)
%               Covariance of the estimator at [d,w] ( assuming that
%               diag(covariance(vec(x))) == sx ).
%
% wx : (D+W)x(D*P)
%               Derivatives of [w;d] wrt to x.
%
% Author  : Etienne Grossmann <etienne@isr.ist.utl.pt>
% Created : March 2000
%```

## CROSS-REFERENCE INFORMATION

This function calls:
• best_dir % [d,w,rx,cv,wx] = best_dir( x, [a , sx ] )
• best_dir_cov % [cv,wx] = best_dir_cov(x,a,sx,wd)
This function is called by:
• best_dir % [d,w,rx,cv,wx] = best_dir( x, [a , sx ] )

Generated on Sat 16-May-2009 00:04:49 by m2html © 2003