I'm trying to calculate the SVD on this symbolic matrix using Matlab
0 2 3 4*a 5*a
6 7 1 8*a 9*a
using the following code:
syms a
M = [0 2 3 4*a 5*a ; 6 7 1 8*a 9*a]
s = svd(M)
It's working, and i can get the singular values, but using the following code I can get the orthogonal matrices.
[U,S,V] = svd(M)
I get this error:
Error using sym/svd (line 85) Input arguments must be convertible to floating-point numbers.
How can i deal with that?
From the docs (emphasis mine):
[U,S,V] = svd(A) returns numeric unitary matrices U and V with the columns containing the singular vectors, and a diagonal matrix S containing the singular values. The matrices satisfy the condition A = USV', where V' is the Hermitian transpose (the complex conjugate transpose) of V. The singular vector computation uses variable-precision arithmetic. svd does not compute symbolic singular vectors. Therefore, the input matrix A must be convertible to floating-point numbers. For example, it can be a matrix of symbolic numbers.
So simply, you cant. It's not supported.