Non-square matrix inverse

8 次查看(过去 30 天)
Mohammad
Mohammad 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 CenterFile Exchange 中查找有关 Time Series Objects 的更多信息

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by