【问题标题】:SVD on a symbolic matrix on MatlabMatlab上符号矩阵的SVD
【发布时间】:2020-05-23 13:03:04
【问题描述】:

我正在尝试使用 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 行) 输入参数必须可转换为浮点数。

我该如何处理?

【问题讨论】:

  • 看起来svd 不接受非数字输入。尝试做:syms a real
  • @AnderBiguri 刚试过。同样的错误。

标签: matlab symbolic-math matlab-compiler


【解决方案1】:

来自docs(强调我的):

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

所以简单,你不能。它不受支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2014-02-26
    • 2014-07-14
    • 1970-01-01
    相关资源
    最近更新 更多