SVD
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
In MATLAB,if we take the svd(X)of a column matrix,we r supposed to get the product of three matrices after decomposition.I want to take the pseudo inverse of this matrix pinv(svd(X)).but after svd I am getting a single number instead a matrix.Pl help me why like this.I am reqd to maultiply another column matrix to this inverse matrix to get the answer. Ex: Force F = pinv(svd(FRF))*A, actually I am expecting pinv(svd(FRF)) should be a 1x3 size and Acceleration matrix A should be of 3x1.Kindly help me to resolve this Shrinivas Gombi
0 comentarios
Respuestas (2)
Walter Roberson
el 13 de Jul. de 2011
svd(X) by itself returns a vector of singular values. The vector will be a column vector of length min(size(X)) . When X is a column vector, min(size(X)) will be 1, so svd(X) will return a scalar.
If you want to be working with matrices, you should probably be using the multi-output version of svd,
[U,S,V] = svd(X);
2 comentarios
Walter Roberson
el 14 de Jul. de 2011
[u s v] = svd(FRF(i));
F = pinv(s);
Note: this will be equivalent to
F = zeros(1,length(i));
s = svd(FRF(i));
if s ~= 0; F(1) = 1/s; end;
Krishna Kumar
el 13 de Jul. de 2011
When you do svd of a column matrix, you get 3 matrices [u s v]=svd(X) if X is nx1 vector, u is n*n,s is n*1 and v is 1*1 now if use svd(X) without output args you get 1x1 value, i.e the first entry in s. The remaining entries in 's' are actually zeros. Hope this could help you find a way out.
Ver también
Categorías
Más información sobre Surface and Mesh Plots 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!