Filter löschen
Filter löschen

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

2 Ansichten (letzte 30 Tage)
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!

Antworten (1)

Torsten
Torsten am 26 Okt. 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 Kommentare
Henning Schmitz
Henning Schmitz am 26 Okt. 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 am 26 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by