Non-square matrix inverse

9 views (last 30 days)
Mohammad
Mohammad on 1 Dec 2023
Answered: John D'Errico on 1 Dec 2023
I have a set of data, where x is a 8*100 matrix. I convert it into xyz coordinates by multiplying with a transformation vector t (3*8), so that:
B = t*x, resulting in B which is a 3*100 matrix.
I am trying to figure out a way to go from B back to x.
I have tried to do x = pinv(t) * B, but the values were significantly off.
Would appreciate any help!
  1 Comment
Matt J
Matt J on 1 Dec 2023
I have tried to do x = pinv(t) * B, but the values were significantly off.
That's the best you are going to be able to do.

Sign in to comment.

Answers (1)

John D'Errico
John D'Errico on 1 Dec 2023
You CANNOT do so. That is, you cannot learn the original values. You cannot go backwards. A simple example is:
Choose any two numbers. Call them x and y. I'll pick them for you as an example:
x = rand
x = 0.6625
y = rand
y = 0.2189
Having done so, add them together.
z = x + y
z = 0.8814
Now, knowing ONLY the value of z, and the fact that you added x and y together to get z, can you now infer the original values of x and y? OF COURSE NOT!
x and y could be ANY numbers that added together, yield 0.8814.

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!