Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Global coordintes to local (not on Matlab 2012!)

Asked by Doctor61 on 29 Jan 2013

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?

0 Comments

Doctor61

Products

No products are associated with this question.

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

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.

Jan Simon

Contact us