【问题标题】:Rank of a matrix in ojAlgoojAlgo 中矩阵的秩
【发布时间】:2018-06-10 20:23:22
【问题描述】:

我目前正在使用 ojAlgo v45.1.0。我有一个关于如何获取矩阵的迹线和总和的问题。由于我在 PrimitiveDenseStore 类中存储了一个矩阵,因此查看计算迹线和矩阵之和的方法是不可行的。那么,有谁知道如何在 PrimitiveDenseStore 类中获取矩阵的轨迹和总和?提前谢谢!

【问题讨论】:

  • 你知道如何使用任何其他库(或笔和纸)计算矩阵排名吗?
  • 您好 Apete,感谢您的回复。是的,我确实知道如何使用 EJML 获得矩阵的秩、迹或总和。例如,使用 EJML,当我希望计算矩阵的秩、迹或总和时,我可以简单地调用 A.trace()、A.svd(true).rank() 或 A.elementSum() ,其中 A 是类 SimpleMatrix (ejml.org/wiki/index.php?title=Matlab_to_EJML) 中的变量。我想知道如果我在你的包中使用类 PrimitiveDenseStore 是否可以做同样的事情。提前谢谢!

标签: ojalgo


【解决方案1】:

在 ojAlgo 中,BasicMatrix 最符合 EJML 的 SimpleMatrix(我猜)。

使用 PrimitiveDenseStore 并没有为您完成任何事情,但您可以做更多事情。下面是一种计算轨迹的方法:

double trace = denseStore.aggregateDiagonal(SUM);

有一个接口 MatrixDecomposition.RankRevealing 可以实现许多矩阵分解。实例化 SVD:

SingularValue<Double> svd = SingularValue.make(denseStore);
svd.decompose(denseStore);
svd.getRank();

【讨论】:

  • 您好 Apete,非常感谢您的快速回复。是的,您的代码示例正是我所需要的。另外,我想知道是否有关于代码示例的在线文档,以便我可以阅读。例如,一个在线文档链接了 MATLAB 和 ojalgo,它类似于以下在线文档 (ejml.org/wiki/index.php?title=Matlab_to_EJML)。那将非常有用。提前谢谢!
  • github.com/optimatika/ojAlgo/wiki 没有特定的“用于 MATLAB 用户的 ojAlgo”页面。
猜你喜欢
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 2019-05-16
  • 2012-02-28
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
相关资源
最近更新 更多