Effacer les filtres
Effacer les filtres

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

2 vues (au cours des 30 derniers jours)
Henning Schmitz
Henning Schmitz le 26 Oct 2022
Commenté : Torsten le 26 Oct 2022
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!

Réponses (1)

Torsten
Torsten le 26 Oct 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 commentaires
Henning Schmitz
Henning Schmitz le 26 Oct 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 le 26 Oct 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by