Borrar filtros
Borrar filtros

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

2 visualizaciones (últimos 30 días)
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!

Respuestas (1)

Torsten
Torsten el 26 de Oct. de 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 comentarios
Henning Schmitz
Henning Schmitz el 26 de Oct. de 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 el 26 de Oct. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by