A problem in the usage of multidimensional scaling (cmdscale)

8 views (last 30 days)
Hello everyone.
I have some nodes in a cartesian coordinates that have a specific configuration.
I've used cmdscale(D) for creating a configuration based on euclidean distance matrix D.
Matrix D is based on the positions of my nodes.
My problem is that cmdscale does mirroring than the initial node configuration.
How can we cancel mirroring in cmdscale?

Accepted Answer

Jeff Miller
Jeff Miller on 7 Feb 2023
You can't cancel that. With only the distance information in D, the mds function has no way of knowing what is up/down/left/right or north/south/east/west etc. The axes and directions that the algorithm produces are based on minor numerical quirks in D (that seem irrelevant to us).
For example, look at the map output in the first example on the cmdscale documentation page--north/south and east/west are both inverted relative to the real world locations of these cities as we usually display them on maps.
What you can do is to rescale the output coordinates Y that you get from cmdscale. For example, multiply by -1 along one dimension to reverse the picture with respect to that dimension.

More Answers (0)


Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!