Matlab 符号矩阵上的 SVD

SVD on a symbolic matrix on Matlab

我正在尝试使用 Matlab 在这个符号矩阵上计算 SVD

0 2 3 4*a 5*a
6 7 1 8*a 9*a

使用以下代码:

syms a
M = [0 2 3 4*a 5*a ; 6 7 1 8*a 9*a]
s = svd(M)

有效,我可以获得奇异值,但使用以下代码我可以获得正交矩阵。

[U,S,V] = svd(M)

我收到这个错误:

Error using sym/svd (line 85) Input arguments must be convertible to floating-point numbers.

我该如何处理?

来自 docs(强调我的):

[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.

很简单,你做不到。不支持。