c++ - 矩阵指数与 Armadillo

标签 c++ matlab lapack armadillo

我目前正在使用自己的 C++/Mex 代码和 Matlab 进行开发,但我的项目越来越大,我正在考虑切换到合适的线性代数库。我读过很多关于 Armadillo 的好东西,但我找不到我的项目需要的一些基本功能。

我了解 Armadillo 链接到 LAPACK 和 BLAS 库,但我在 Armdaillo's API 中找不到矩阵指数函数, 也不在 LAPACK functions .

谁能告诉我是否有使用 Armadillo 计算矩阵指数的附加组件?如果是这样,将不胜感激一个简短的示例代码。

最佳答案

矩阵指数是 Matlab 的东西。所以Octave实现了它。所以其他自由软件项目看的是什么 Octave借用了这个实现并重新实现了它。

我经常使用 RArmadillo通过 RcppArmadillo包(我是合著者)。在最近的一项工作中,我需要 expm() 并借用它供 Armadillo 使用。来自 R package exmp .

代码是这样的:

arma::mat expm(arma::mat x) {
    arma::mat z(x.n_rows, x.n_cols);
    (*expmat)(x.begin(), x.n_rows, z.begin(), Ward_2);
    return z;
}

但这当然取决于我从 R package exmp .完整文件 is here on Github它也有枚举 Ward_2

关于c++ - 矩阵指数与 Armadillo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24220999/

相关文章:

matlab - 如何获取 GNU Octave 中的当前脚本路径?

c++ - 当矩阵不是奇异时,lapack cgesv 出错

c++ - c++ 中是否有任何类是所有类的父类(super class)?

java - 使用java生成repmat()方法

matlab - 这是与 sub2ind/ind2sub 相关的错误吗?

在ubuntu上编译Blas

system - 使用 LAPACK 的 DGBSV 从 C 解决带状系统

c++ - 是否有任何编译器忽略有关默认内联函数的 C++ 标准?

c++ - 容器接口(interface)返回抽象类型迭代器

c++ - VLC 本地 H264 流超过 rtp 的巨大缓冲时间