C++ Armadillo矩阵库的安装与基本用法

article/2025/8/21 3:21:24

文章目录

  • Armadillo
    • 安装
    • 入门案例
    • 直接赋值
    • 切片
    • 常用函数

Armadillo

安装

Armadillo是一个具有Matlab风格的线性代数包。下载之后解压到任意文件夹,然后对VS工程进行设置。

  1. 菜单栏生成->配置管理器,将平台改为x64
  2. 右键项目名称->属性(快捷键Shift+F4),编辑VC++目录。将**…\armadillo-9.900.5\examples\lib_win64这个文件夹的绝对路径添加到包含目录库目录**中。
  3. 点击C/C++->常规,将**…\armadillo-9.900.5\include这个文件夹的绝对路径添加到附加包含目录**中。
  4. 点击链接器->常规,将**\armadillo-9.900.5\examples\lib_win64文件夹的绝对路径添加到附加库目录**中。
  5. 选择链接器->输入,将lib_win64中的两个文件blas_win64_MT.liblapack_win64_MT.lib添加到附加依赖项
  6. 配置完成后,将**\armadillo-9.900.5\examples\lib_win64**下的dll文件复制到新建项目的debug文件夹下。

在这里插入图片描述

入门案例

mat格式是Armadillo中最基础的矩阵格式,其赋值方法如下代码所示。

#include <iostream>
#include <armadillo>    //armadillousing namespace std;
using namespace arma;   //armadillo的命名空间int main(){mat A(2, 3);        //可建立2行3列的矩阵cout << A.n_rows << endl;  // 输出为2cout << A.n_cols << endl;  // 输出为3A(1,2)=15;          //第1行第2个数赋值为15A = 5.0;            //将A变为1X1的矩阵,其值为5A.set_size(4, 5);   //重新设置矩阵的行列数A.fill(5.0);        //将A的所有值都置为5.0A.print("A:");system("pause");return 0;
}

最后的A.print("A:");语句得到


A:
5.0000 5.0000 5.0000 5.0000 5.0000
5.0000 5.0000 5.0000 5.0000 5.0000
5.0000 5.0000 5.0000 5.0000 5.0000
5.0000 5.0000 5.0000 5.0000 5.0000
请按任意键继续. . .


直接赋值

此外,矩阵可直接赋值,每行元素用<<间隔,每行结尾用endr区分。对于已经建立的矩阵,可以非常方面地求行列式与逆矩阵,并提供了保存功能。案例如下

int main(){mat A();//为矩阵A赋值A << 0.165300 << 0.454037 << 0.995795 << 0.124098 << endr<< 0.688782 << 0.036549 << 0.552848 << 0.937664 << endr<< 0.348740 << 0.479388 << 0.506228 << 0.145673 << endr<< 0.148678 << 0.682258 << 0.571154 << 0.874724 << endr;cout << det(A) << endl;     //计算行列式cout << inv(A) << endl;     //计算逆矩阵A.save("A.txt", raw_ascii); //存储矩阵system("pause");
}

其结果为

0.227747        //此为矩阵行列式的值,下面是逆矩阵-1.0136   0.7210   2.3596  -1.0220-0.9098  -0.9106   1.8929   0.78991.6083   0.2419  -1.1112  -0.3025-0.1682   0.4297  -1.1519   0.8983
请按任意键继续. . .

切片

int main(){mat B;B.load("A.txt");    //加载刚刚存储的矩阵cout << B(span(0, 2), span(3, 4)) << endl;cout << B(0, 3, size(3, 2)) << endl;//起始点为(0,3),尺寸为3X2cout << B.row(0) << endl;   //第0行cout <<B.col(1) << endl;    //第1列
}

常用函数

一些常用的函数如下表所示,其逻辑与Matlab/Octave是十分相似的,对于矩阵A而言

表达式功能Octave语法
A.t()转置a’
det(A)行列式det(A)
inv(A)逆矩阵inv(A)A^(-1)
max(A)按列取最大值max(A)
max(A,1)按行取最大值max(A,1)
max(max(A))最大值max(max(A))
sum(A)按列求和sum(A)
sum(A,1)按行求和sum(A,1)
accu(A)求和sum(sum(A))
trace(A)求A的迹trace(A)

其中粗体为与Matlab不同者。


http://chatgpt.dhexx.cn/article/Tid6MVf4.shtml

相关文章

一个常见的大数据平台架构

这是一个典型的大数据架构&#xff0c;且对架构进行了「分层」&#xff0c;分为「数据源层」、「数据传输层」、「数据存储层」、「编程模型层」和「数据分析层」&#xff0c;如果继续往上走的话&#xff0c;还有「数据可视化层」和「数据应用层」。

大数据平台架构实践

说明 本篇博客整理自参考内容&#xff0c;完整内容请查看原文章&#xff1b; 技术选型 MOLAP 与Druid相类似的实时数据分析工具&#xff0c;还有Linkedln的Pinot和eBay的Kylin&#xff0c;它们都是基于Java开发的。Druid相对比较轻量级&#xff0c;用的人也多&#xff0c;毕…

网易大数据平台架构实践分享!

随着网易云音乐、新闻、考拉、严选等互联网业务的快速发展&#xff0c;网易开始加速大数据平台建设&#xff0c;以提高数据获取速度&#xff0c;提升数据分析效率&#xff0c;更快发挥数据价值。 本次演讲主要分享网易如何围绕和改造开源技术&#xff0c;以产品化思维打造网易自…

详解大数据平台架构

目录: 什么是大数据 Hadoop介绍-HDFS、MR、Hbase 大数据平台应用举例-腾讯 公司的大数据平台架构 “就像望远镜让我们能够感受宇宙,显微镜让我们能够观测微生物一样,大数据正在改变我们的生活以及理解世界的方式……”。 大数据的4V特征 公司的“大数据” 随着公司业…

京东金融大数据平台架构(附82页PPT)

公众号推文规则变了&#xff0c;点击上方 "数据社", 设为星标 后台回复【加群】&#xff0c;申请加入数据学习交流群 大家好&#xff0c;我是一哥&#xff0c;给大家分享一下京东金融大数据分析平台总体架构介绍&#xff0c;废话不说&#xff0c;干货收藏吧&#xff…

大数据平台架构设计探究

本文首发于 vivo互联网技术 微信公众号 链接&#xff1a;https://mp.weixin.qq.com/s/npRRRDqNUHNjbybliFxOxA 作者&#xff1a;刘延江 近年来&#xff0c;随着IT技术与大数据、机器学习、算法方向的不断发展&#xff0c;越来越多的企业都意识到了数据存在的价值&#xff0c;将…

乡村振兴大数据平台架构方案(附下载)

迎加入星球下载所有资料&#xff0c;转发朋友圈截图回复666亦可下载 加入星球&#xff0c;好资料一直有 推荐阅读&#xff1a; 世界的真实格局分析&#xff0c;地球人类社会底层运行原理 不是你需要中台&#xff0c;而是一名合格的架构师&#xff08;附各大厂中台建设PPT&#…

大数据平台架构+ETL

1 ETL&#xff0c;Extraction-Trasformation-Loading&#xff0c;即数据读取&#xff0c;转换&#xff0c;装载的过程&#xff0c;是构建数据仓库的重要环节。 ETL是将业务系统的数据经过抽取&#xff0c;清洗转换之后加载到数据仓库的过程&#xff0c;目的是将企业中的额分散的…

百度、阿里、腾讯平台架构都熟悉,小米大数据平台架构OLAP架构演进是否了解

阿里、百度、腾讯的大数据平台架构都有很多地方有介绍了&#xff0c;接下来给大家深入了解小米大数据平台架构OLAP架构演进 全网最详细的Hadoop文章系列&#xff0c;强烈建议收藏加关注&#xff01; 2021大数据领域优质创作博客&#xff0c;带你从入门到精通&#xff0c;该博客…

大数据平台架构的层次划分

1. 数据源层&#xff1a;包括传统的数据库&#xff0c;数据仓库&#xff0c;分布式数据库&#xff0c;NOSQL数据库&#xff0c;半结构化数据&#xff0c;无结构化数据&#xff0c;爬虫&#xff0c;日志系统等&#xff0c;是大数据平台的数据产生机构。 2. 数据整理层&#xff…

常见的大数据平台架构设计思路

近年来&#xff0c;随着IT技术与大数据、机器学习、算法方向的不断发展&#xff0c;越来越多的企业都意识到了数据存在的价值&#xff0c;将数据作为自身宝贵的资产进行管理&#xff0c;利用大数据和机器学习能力去挖掘、识别、利用数据资产。如果缺乏有效的数据整体架构设计或…

大数据平台架构浅析——以讯飞大数据平台Odeon为例

文章目录 大数据平台架构解析——以讯飞大数据平台Odeon为例定义功能数据采集数据开发数据分析数据编程补充 大数据平台架构解析——以讯飞大数据平台Odeon为例 定义 Odeon大数据平台以全图形化Web操作的形式为用户提供一站式的大数据能力&#xff1a;包括数据采集、任务编排、…

浅谈大数据平台架构设计

全文共3735个字&#xff0c;建议8分钟阅读 近年来&#xff0c;随着IT技术与大数据、机器学习、算法方向的不断发展&#xff0c;越来越多的企业都意识到了数据存在的价值&#xff0c;将数据作为自身宝贵的资产进行管理&#xff0c;利用大数据和机器学习能力去挖掘、识别、利用数…

大数据平台架构包含哪些功能

为了满足企业对于数据的各种需求&#xff0c;需要基于大数据技术构建大数据平台。结合大数据在企业的实际应用场景&#xff0c;如下图所示的大数据平台架构所示&#xff1a; 最上层为应用提供数据服务与可视化&#xff0c;解决企业实际问题。第2层是大数据处理核心&#xff0c;…

大数据平台层级架构图

主流数据平台架构 一般包含三个层级&#xff0c;ODS层、数据仓库层、数据应用层。 业务系统的操作和日志数据抽取到ODS层&#xff0c;ODS的数据经过ETL过程&#xff08;抽取Extraction&#xff0c;转化Transformation&#xff0c;加载Loading&#xff09;进入数据仓库&#xff…

大数据平台架构

1 大数据组件架构 大数据架构分为:数据采集,传输,存储,调度和处理这五个部分.其中任务定期执行和任务分配,分别使用Azkaban和Zookeeper&#xff0c;大数据平台整体架构如图1所示&#xff0c;由图1可知&#xff0c;大数据平台的基础是服务器&#xff08;硬件&#xff09;&#…

大数据平台核心架构图鉴,建议收藏!

我们先来看看这张图&#xff0c;这是某公司使用的大数据平台架构图&#xff0c;大部分公司应该都差不多&#xff1a; 从这张大数据的整体架构图上看来&#xff0c;大数据的核心层应该是&#xff1a;数据采集层、数据存储与分析层、数据共享层、数据应用层&#xff0c;可能叫法有…

葱油拌面的做法 手残党都能学会

很多人都爱吃葱油拌面&#xff0c;可是在家怎么做葱油拌面呢? 葱油拌面 是一道以面条、猪油、黄瓜丝、葱、姜、盐、鸡精、酱油、白糖、料酒、桂皮、大料作为食材制作而成的家常面食。通常是将煮熟的面条放上葱油一起拌着吃。也是上海招牌美食&#xff0c;面条有韧劲又滑爽&am…

如何做红烧肉好吃又不腻 教你做红烧肉

如何做红烧肉好吃又不腻 最快的做法就是用高压锅了&#xff0c;加点花椒&#xff0c;大料&#xff0c;料酒&#xff0c;葱段&#xff0c;姜片&#xff0c;放到高压锅里开始炖&#xff0c;20分钟就很烂了&#xff0c;20分钟非常烂。之后捞出来。 &#xff08;1&#xff09;炒锅…

各种酱料名称大全_调料大全名称 日常调料有哪些

厨房里的调料主要有食盐、生抽、老抽、蚝油、香油、白醋、陈醋、八角、花椒、桂皮、陈皮、花椒、辣椒、生姜、大葱、大蒜、鱼露、味精、鸡精、料酒、白糖、冰糖、孜然、茴香、五香粉、十三香、胡椒、香叶等。 日常调料有哪些 调料主要是人们在日常生活中用来烹饪菜肴和食物等使…