【问题标题】:Cholesky factorization type error MatlabCholesky分解类型错误Matlab
【发布时间】:2017-03-29 10:13:25
【问题描述】:

我没有尝试任何复杂但无法理解为什么会触发此错误(使用 Matlab 的 R2016a 版本)。

我想在my_matrix 上计算Matlab's Cholesky factorization chol() 这是一个[2x2x3 double]

my_matrix(:,:,1) = [  4.2534    0.4791;  0.4791    0.3522];
my_matrix(:,:,2) = [  0.9729    0.8723;  0.8723    2.6317];
my_matrix(:,:,3) = [  0.9886   -1.2244; -1.2244    3.0187];

chol(my_matrix)

但是这会引发以下错误:

“double”类型的输入参数的未定义函数“chol”和 属性“全 3d 真实”。

【问题讨论】:

  • 您打算如何对 2 x 2 x 3 矩阵进行cholesky 分解?它仅针对 2D 矩阵定义。
  • 好的,这就是它触发错误的原因。我同意这是一个愚蠢的错误,但我是 matlab 新手,我发现错误和文档都很广泛。
  • 是的。不幸的是,Simulink 的文档很差。一开始我不得不考虑它在数学上的实际含义。
  • 我想这是第一个(最好的?)调试方法:)无论如何,干杯。
  • @downvoters 你能解释和评论,以便我改进下一个问题吗?

标签: matlab matrix numerical-methods


【解决方案1】:

正如@Eli Sadoff 所指出的,cholesky 分解采用2D 矩阵。所以这个错误意味着我使用的是 3D 矩阵而不是 2D 矩阵。所以我将chol() 应用于最后一个维度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2020-05-29
    • 2022-01-02
    • 2014-03-03
    • 2020-11-05
    • 2014-07-29
    • 2015-06-20
    相关资源
    最近更新 更多