Assigning points for axes and using mdscale

2 次查看(过去 30 天)
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!

回答(1 个)

arushi
arushi 2024-5-2
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.

类别

Help CenterFile Exchange 中查找有关 Dimensionality Reduction and Feature Extraction 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by