MATLAB Answers


Global coordintes to local (not on Matlab 2012!)

Asked by Doctor61 on 29 Jan 2013


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?


Log in to comment.

1 Answer

Answer by Jan Simon
on 30 Jan 2013
Edited by Jan Simon
on 30 Jan 2013
 Accepted Answer

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

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.

Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today