一、前言
二、下载安装文件
三、编译与安装
四、代码示例
五、总结
一、前言
Armdillo
class="superseo">class="superseo">矩阵运算速度跟 MATLAB 一个量级,为目前使用比较广的 C++ 矩阵运算库之一,是在 C++ 下使用 MATLAB 方式 *** 作矩阵很好的选择,许多 MATLAB 的矩阵 *** 作函数都可以找到对应,这对习惯了Matlab的人来说实在是非常方便,另外如果要将 MATLAB 下做研究的代码改写成 C++,使用 Armadillo 也会很方便,这里有一个简易的 MATLAB 到Armadillo 的语法转换。
二、下载安装文件
官网链接如下:http://arma.sourceforge.net/download.html
这里我下载的为稳定版 10.8.2
版本。
三、编译与安装
进入到 Downloads
目录,解压压缩文件:
cd ~/Downloads
tar -xvf armadillo-10.8.2.tar.xz
进入到解压后文件目录:
cd ./armadillo-10.8.2/
运行相关配置:
./configure
部分输出如下:
/home/zq/Downloads/armadillo-10.8.2> ./configure
-- *** set cmake policy CMP0025 to NEW
-- CMAKE_CXX_STANDARD = 11
-- The CXX compiler identification is GNU 11.2.0
-- The C compiler identification is GNU 11.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
......
-- Generating '/home/zq/Downloads/armadillo-10.8.2/InstallFiles/ArmadilloConfigVersion.cmake'
-- Copying /home/zq/Downloads/armadillo-10.8.2/misc/ to /home/zq/Downloads/armadillo-10.8.2/tmp/misc/
-- Generating '/home/zq/Downloads/armadillo-10.8.2/tmp/misc/armadillo.pc'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zq/Downloads/armadillo-10.8.2
接着执行 make
命令:
make
输出如下:
接着执行安装:
sudo make install
部分输出如下:
/home/zq/Downloads/armadillo-10.8.2> sudo make install
[sudo] password for zq:
[100%] Built target armadillo
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/include
-- Installing: /usr/include/armadillo_bits
-- Installing: /usr/include/armadillo_bits/op_diagvec_meat.hpp
-- Installing: /usr/include/armadillo_bits/injector_bones.hpp
......
-- Installing: /usr/share/Armadillo/CMake/ArmadilloLibraryDepends.cmake
-- Installing: /usr/share/Armadillo/CMake/ArmadilloLibraryDepends-noconfig.cmake
-- Installing: /usr/share/Armadillo/CMake/ArmadilloConfig.cmake
-- Installing: /usr/share/Armadillo/CMake/ArmadilloConfigVersion.cmake
-- Installing: /usr/lib/x86_64-linux-gnu/pkgconfig/armadillo.pc
四、代码示例
一段使用 Armdillo
库的代码:
#include
#include
using namespace std;
using namespace arma;
int main()
{
mat A(4, 5, fill::randu);
mat B(4, 5, fill::randu);
cout << A*B.t() << endl;
return 0;
}
注意这里编译的时候不能直接 g++
,不然会出现如下报错:
这里我们使用如下命令编译:
g++ test1.c -o test1 -std=c++11 -O2 -larmadillo
运行结果如下:
五、总结
无
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)