Hi Ben,
Thanks for the file.
Please have a look here:
https://www.amazon.com/clouddrive/share/YH2ZZFb2AMUWsMPuQu1dmKHarF4jA6g52mKKGSoVekp
Note, if you scale with the axis handles, stay in Object Mode.
How I understand this question:
A given Matrix should be applied to the Matrix of Object A (sphere) to offset Object B (Cube). I have used a Null object for the “Constant” as it produces a Matrix directly with the measurements of the difference to the World origin point, so easy to adjust. The Offset is for distance.
Since I’m answering in a forum with a wide variety of knowledge, I have to explain it this way. A matrix is a 12 value combination. It is the way 3D application store position and rotation as well as scale. Position, Rotation, and Scale are stored in four groups of each time, three vectors (V0, V1, V2, V3). There is no direct rotation nor scale. All we see is just three vectors. But where it sits in space is the first group of three vectors. Then each of the axis X, Y and Z has a set of three vectors on its own. To rotate or to scale an object requires to calculate all nine of those.
https://help.maxon.net/us/#5829
To your question: Each of the V1, V2, V3, (not V0), in other words, all nine of them needed to be multiplied with the “offset-nine” and put back together again (too much work!). Or you can just clip out the Offset Value (V0) and use a Math node set to Multiply and Matrix. The feed it to the target object.
The Set up above can be grouped into an XGroup, ports can be renamed, and then stored in the XPool (see image)
All the best
P.S.: more in-depth about all of that is given in the Book, Mathematics for Computer Graphics, by Joh Vince. Which I think should be in every 3D artist’s shelf.
P.S.2: In the XPresso Editor, go to the X-Pool, then to System Presets: Matrix. No Scale, but perhaps something you like to know anyway.