Non-square matrix inverse

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 件のコメント

Matt J
Matt J 2023 年 12 月 1 日
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.

サインインしてコメントする。

回答 (1 件)

John D'Errico
John D'Errico 2023 年 12 月 1 日

0 投票

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.

カテゴリ

製品

リリース

R2023b

質問済み:

2023 年 12 月 1 日

回答済み:

2023 年 12 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by