As best i can tell, PrincipalCoordinates
is doing the same computation as the resource function "MultidimensionalScaling"
up to column signs, provided that latter is instructed to return a result with vectors of the same dimension as the input. Here is an example.
mat = RandomReal[{-10, 10}, {10, 4}];
pcoords = PrincipalComponents[mat];
Dimensions[pcoords]
(* Out[21]= {10, 4} *)
mds = ResourceFunction["MultidimensionalScaling"][mat, 4];
pcoords/mds
(* Out[25]= {{-1., -1., -1., 1.}, {-1., -1., -1., 1.}, {-1., -1., -1.,
1.}, {-1., -1., -1., 1.}, {-1., -1., -1., 1.}, {-1., -1., -1.,
1.}, {-1., -1., -1., 1.}, {-1., -1., -1., 1.}, {-1., -1., -1.,
1.}, {-1., -1., -1., 1.}} *)
I am not familiar with the details of the PrincipalCoordinates
implementation. But the code for "MultidimensionalScaling"
can be accessed via ResourceObject["MultidimensionalScaling"]["DefinitionNotebook"]
. Depending on what exactly you require, you might be able to alter that to return more information about the transformation on the input vectors.