From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Vectors on ellipsoid surface
Date: Sun, 23 May 2010 17:42:05 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 57
Message-ID: <htbpdd$e9i$>
References: <ht5ldf$7tf$> <hta8lc$e4f$> <htai71$i38$> <htaqsk$5h1$> <htba3v$iq3$> <htbekb$afo$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1274636525 14642 (23 May 2010 17:42:05 GMT)
NNTP-Posting-Date: Sun, 23 May 2010 17:42:05 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1140591
Xref: comp.soft-sys.matlab:638495

> > But what I am not getting is how to give in P1 and P2 (the two points between which C lies), and is the projected C in 90 degrees of this line? 
> Sorry? What are P1 and P2? I quote your post #1
> My understanding is C is given, and C' is the projection on C on the surface of the ellipsoid to be found. In my code, C is called "c" (lower case); and C' is "x(:,imin)". 

What you suggest is correct, only c lies on a line which runs from P1 to P2. This is a line through the ellipsoid. C' is the projection of c on the surface of the ellipsoid, where the angle between the line P1(or P2) to c and c to C' is 90 degrees. So I think here has been a misunderstanding.  
> > 
> > What should I do if my origin is not on [0,0,0], just change [X Y Z] = ellipsoid(0,0,0,radii(1),radii(2),radii(3),N); ?

> If you know 
> 1) the radii: radii(1), radii(2), and radii(3) (three scalars in a vector)
> 2) the corresponding orientation U1, U2, U3 (three vectors, they must be orthogonal and normed to 1)
> 3) and the center x0 (a vector) of your ellipsoid
> Then define:
> U = [U(:,1) U(:,2) U(:3)]
> S = diag(1./radii.^2);
> Q = U*S*U'

Is Q even necessary?  After this code, I let the engine start. But I have the feeling somethings going wrong. What I have now is this:

C=[1.0150   -1.5380   -6.0150]

cx=1; cy=-5;cz=1; % Center of my ellipsoid

ax=12; ay=12; az=20; % radii of my ellipsoid

radii(1)=ax; radii(2)=ay; radii(3)=az;

U(:,1) = [0.1;0.2;1]; U(:,2) = [0.5;0.3;0.7]; U(:,3) = [0.6;0.6;0.4]  % example of

possible axis of my ellipsoid

% Data, generate ellipse centered at origin, { x: x'*Q*x = 1 }

c = C'-[cx; cy; cz]

% c = 1*randn(n,1)

U = [U(:,1) U(:,2) U(:,3)]

S = diag(1./radii.^2)

s = diag(S)

% Q = U*s*U'

A = U*diag(radii);