首页 > 解决方案 > Matlab上符号矩阵的SVD

问题描述

我正在尝试使用 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)

我收到此错误:

使用 sym/svd 时出错(第 85 行) 输入参数必须可转换为浮点数。

我该如何处理?

标签: matlabsymbolic-mathmatlab-compiler

解决方案


文档(强调我的):

[U,S,V] = svd(A) 返回数值酉矩阵 U 和 V,其列包含奇异向量,对角矩阵 S 包含奇异值。矩阵满足条件 A = U S V',其中 V' 是 V 的 Hermitian 转置(复共轭转置)。奇异向量计算使用可变精度算术。svd 不计算符号奇异向量。因此,输入矩阵 A 必须可转换为浮点数。例如,它可以是符号数字矩阵。

很简单,你不能。不支持。


推荐阅读