Global coordintes to local (not on Matlab 2012!)

1 view (last 30 days)
Hey,
I have been searching for a way to be able to define spherical coordinates of the points in a XYZ matrix, based on a local coordinate system (new origin and xyz axes). All I have been running into is this new global2localcoord code in Matlab 2012 that the previous versions apparently don't have.
Could someone help me figure out how to do this?

Accepted Answer

Jan
Jan on 30 Jan 2013
Edited: Jan on 30 Jan 2013
The general procedure is:
localCoor = rand(3, 100);
translationOfLocalOrigin = rand(3, 1);
rotationOfLocalCoorSystem = <DirectionCosinMatrix>; % [3 x 3] matrix
globalCoor = bsxfun(@minus, localCoor, translationOfLocalOrigin);
globalCoor = rotationOfLocalCoorSystem * globalCoor;
If you need more details, e.g. for the paraphrased "<DirectionCosinMatrix>", please post more details for your available input.
  1 Comment
Doctor61
Doctor61 on 30 Jan 2013
Thanks for your respond. What you proposed is actually very helpful, but I guess you got it backwards, I have a matrix with the global xyz coordinates, then I want to define a new set of coordinate system with a new origin and angles axes (which would be using the translationOfLocalOrigin and rotationOfLocalCoorSystem you defined above) and find my new xyz or eventually r,phi,theta with respect to that global coords.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!