# Assigning points for axes and using mdscale

1 view (last 30 days)
Manikatam Gaddam on 30 Sep 2021
Answered: arushi on 2 May 2024
Hi All,
I have a pairwise distances between 20 points (D=20x20 matrix) with 0's and positive distances between pairs. From Matlab help, I was able to use the mdscale to get the 3d coordinates of 20 points. But, I am looking to assign point 1 to be origin, point 3 to be on X-axis, Point 5 on XY plane, Point 20 in Z direction. Is there a possibility to get all point coordinates with this new reference/axes? Thank you!

arushi on 2 May 2024
Hi Manikatam,
Yes, it can be achieved this by first obtaining the 3D coordinates of the points using Multidimensional Scaling (MDS) via mdscale, and then applying a transformation to align the points according to your specified conditions. Here's a step-by-step approach:
1.Obtain Initial Coordinates: Use mdscale to get the initial 3D coordinates of the 20 points from your distance matrix D.
2. Define New Axes: You want to redefine the coordinate system such that:
• Point 1 is at the origin.
• Point 3 lies on the X-axis.
• Point 5 lies on the XY-plane.
• Point 20 defines the Z direction (but since you want a 3D representation, this point will help define the transformation rather than lying strictly on the Z-axis with no X or Y components in the new system).
3. Apply Transformation: To achieve this, you'll need to:
• Translate all points so that Point 1 is at the origin.
• Rotate the points so that Point 3 lies on the X-axis.
• Rotate again so that Point 5 lies on the XY-plane.
• Ensure Point 20 provides orientation for the Z direction through these transformations.
Hope this helps.