Azzera filtri
Azzera filtri

Matrix distribution into two vectors that build similiar matrix as a vector product

2 visualizzazioni (ultimi 30 giorni)
Hello,
i want to split up a matrix into two vectors. If i build the vector product of those vectors a similiar matrix compared to the original one should emerge. This should be an optimization problem, but i don't know where to start.
Furthermore the solution should not be an iterative one.
Thank you guys a lot!

Risposte (1)

Torsten
Torsten il 26 Ott 2022
But you already got the answer for the two vectors a and b and the resulting approximating matrix C:
[u s v] = svd(M);
n = 1; % initially
a = n*u(:,1);
b = (s(1,1)/n)*v(:,1);
C = a*b'
  2 Commenti
Henning Schmitz
Henning Schmitz il 26 Ott 2022
No this does not work unfortunately for a random matrix.
for example:
M2D = rand(4,4)
n = 5;
[u s v] = svd(M2D);
ax_test = n*u(:,1);
ay_test = (s(1,1)/n)*v(:,1);
M2D_test = ax_test*ay_test';
It just works (very good) if the matrix (M2D) is made as product of two vectors.
Torsten
Torsten il 26 Ott 2022
It's the best reconstruction for M2D that you can get from two vectors. You can't expect a perfect equality (M2D = a*b') since rank(a*b') = 1 whereas rank(M2D) = 4 usually.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by