Armadillo(C++)数学库使用例程
引言:Armadillo数学库包含丰富的向量、矩阵运算,为C++程序开发带来极大便利。本文演示将该数学库继承到VS2010工程中的步骤。
1准备工作
首先需要下载Armadillo数学库,下载地址为:arma.sourceforge/download.html
下载回来的是一个包括头文件、库文件、例子程序等的压缩包,解压后文件夹结构如下:
Examples的目录结构如下图所示:
以上两张图中跟数学库移植直接相关的是include文件夹和lib_win32文件,前者包含了所需的头文件,后者包含了32位window系统程序所需的lib文件和dll文件。另外在pdf文件和html文件中可以获得丰富的帮助信息。
2工程建立
启动VS2010,选择新建工程。在工程向导中选择Win32控制台程序,工程命名为armadilloTest,其他默认,如下图所示:
3数学库相关配置
第一步:将include文件夹及lib_win32文件夹拷贝到工程目录下,如下图所示:
第二步:开启工程设置对话框为工程添加附加头文件包含路径,如下图所示:
第三步:开启工程属性对话框为工程添加附加输入文件路径,如下图所示:
第四步:开启工程属性对话框为工程链接所需库文件,包括lapack_win32_MT.lib和blas_win32_MT.lib,如下图所示:
第五步:开启工程属性对话框为工程添加开启Lapack和blas的预处理定义,如下图所示:
第六步:拷贝lib_win32文件夹下的两个dll文件到目录\armadilloTest\armadilloTest下保证开发环境能够调用到这两个dll,当程序发布后则应该放到可执行文件所在目录或者系统system32目录下。
至此已经完成了所有工程配置工作。
4编写代码
编辑文件armadilloTest.cpp,首先为其添加必要的头文件和作用域命令,如下:
#include<iostream>
#include"armadillo"
usingnamespacearma;
usingnamespacestd;
在main函数中输入如下内容:
    cout<<"Armadillo version: "<<arma_version::as_string() <<endl;
    mat A;
    A << 0.165300 << 0.454037 << 0.995795 << 0.124098 << 0.047084 <<endr
        << 0.688782 << 0.036549 << 0.552848 << 0.937664 << 0.866401 <<endr
        << 0.348740 << 0.479388 << 0.506228 << 0.145673 << 0.491547 <<endr
        << 0.148678 << 0.682258 << 0.571154 << 0.874724 << 0.444632 <<endr
        << 0.245726 << 0.595218 << 0.409327 << 0.367827 << 0.385736 <<endr;
system的头文件    A.print("A =");
    cout<<"det(A) = "<<det(A) <<endl;
    cout<<"inv(A) = "<<endl<<inv(A) <<endl;
    cout<<"pinv(A) = "<<endl<<pinv(A) <<endl;
    double k = 1.23;
    mat    B = randu<mat>(5,5);
    mat    C = randu<mat>(5,5);
    rowvec r = randu<rowvec>(5);
    colvec q = randu<colvec>(5);
    cout<<"as_scalar( r*inv(diagmat(B))*q ) = ";
    cout<<as_scalar( r*inv(diagmat(B))*q ) <<endl;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。