东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 943|回复: 0

[C/C++] Ubuntu18.04下Armadillo的安装与测试

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14427
QQ
发表于 2021-4-20 10:56:03 | 显示全部楼层 |阅读模式


Ubuntu18.04下Armadillo的安装与测试


armadillo是目前使用比较广的C++矩阵运算库之一,相当于Matlab的C++替代库。
许多Matlab的矩阵操作函数都可以找到对应,这对习惯了Matlab的人来说实在是非常方便,
另外如果要将Matlab下做研究的代码改写成C++,使用Armadillo也会很方便


armadillo特性如下:


Armadillo是一种用于C ++语言的高质量线性代数库(矩阵数学),旨在在速度和易用性之间取得良好的平衡
提供类似于Matlab的高级语法和功能
可用于直接在C ++中进行算法开发,或将研究代码快速转换为生产环境
为向量,矩阵和立方体提供有效的类(一阶,二阶和三阶张量);支持密集和稀疏矩阵
支持整数,浮点数和复数
复杂的表达式评估器(基于模板元编程)可自动组合多个操作以提高速度和效率
通过与LAPACK或其高性能替代产品之一(例如MKL或OpenBLAS)集成,可以提供各种矩阵分解(本征,SVD,QR等)
可以自动使用OpenMP多线程(并行化)来加快计算量大的操作
根据许可许可提供,对开放源代码和专有(封闭源)软件均有用


可用于机器学习,模式识别,计算机视觉,信号处理,生物信息学,统计,金融等


安装依赖库:
sudo apt-get update


sudo apt-get install liblapack-dev
sudo apt-get install libblas-dev
sudo apt-get install libboost-dev
安装armadillo:
sudo apt-get install libarmadillo-dev
测试C++代码:
// test.cpp
#include <iostream>
#include <armadillo>


using namespace std;
using namespace arma;


int main(int argc, char **argv)
{
    mat A = randu(4, 5);
    mat B = randu(4, 5);


    cout << A*trans(B) << endl;


    return 0;
}


编译:
g++ test.cpp -std=c++11 -larmadillo  -o test


执行:
jiang@jiang-Ubuntu:~/downloads$ ./test
   0.8635   0.6455   1.2309   0.3664
   0.9823   0.7291   1.3008   0.7792
   1.0882   1.0004   1.6399   0.6935
   1.4101   0.9859   2.0146   0.7092




让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-4-17 05:24 , Processed in 0.182257 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表