Non-square matrix inverse

12 ビュー (過去 30 日間)
Mohammad
Mohammad 2023 年 12 月 1 日
回答済み: John D'Errico 2023 年 12 月 1 日
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 日
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.

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by