c++的armadillo库语法指南

众所周知,armadillo库是一个很好的矩阵库,为了方便大家使用,给大家写了一份入门语法,可以留作使用。

初始化矩阵

mat A(2,3);

输出第n列/行

cout << "A.n_rows: " << A.n_rows << endl;
cout << "A.n_cols: " << A.n_cols << endl;

访问元素(下标为0开始)

A(1,2) = 456.0;

输出矩阵

A.print("A:");

改变矩阵大小(不保留矩阵中内容)

A.set_size(4,5);

将矩阵全部设为一个特定值

A.fill(5.0);

给矩阵一个值

vectorise(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;

行列式

det(A)

逆矩阵

inv(A)

将矩阵存为一个文件

A.save("A.txt", raw_ascii);

从文件读取矩阵

B.load("A.txt");

子矩阵

B( span(0,2), span(3,4) )
B( 0,3, size(3,2) )
B.row(0)
B.col(1)vectorise(A)

转置

B.t()

每一列中最大的值

max(B)

每一行中最大的值

max(B,1)

B中最大的值

max(max(B))

每一列之和

sum(B)

每一行之和

sum(B,1)

所有的数之和

accu(B)

矩阵的迹(对角元之和)

trace(B)

生成单元阵

eye<mat>(4,4)

生成随机阵

randu<mat>(4,4)

行向量(相当于一行的矩阵)

rowvec r;r << 0.59119 << 0.77321 << 0.60275 << 0.35887 << 0.51683;

列向量(相当于一列的矩阵)

vec q;q << 0.14333 << 0.59478 << 0.14481 << 0.58558 << 0.60809;

将矩阵一列一列地排列,转换成向量

vectorise(A)

内积

as_scalar(r*q)

外积

q*r

乘法累加运算(MAC)

accu(A % B)

混合运算

B += 2.0 * A.t();

整数矩阵

imat AA;

布尔矩阵和矩阵元素比较

umat ZZ = (AA >= BB);

三维矩阵(slice为第三维度)

cube Q( B.n_rows, B.n_cols, 2 );Q.slice(0) = B;
Q.slice(1) = 2.0 * B;

矩阵域(将矩阵作为块矩阵存在一个大矩阵中)

field<mat> F(4,3); for(uword col=0; col < F.n_cols; ++col)
for(uword row=0; row < F.n_rows; ++row)
{
F(row,col) = randu<mat>(2,3);  // each element in field<mat> is a matrix
}

c++的armadillo库语法指南相关推荐

  1. Blazor 组件库开发指南

    翻译自 Waqas Anwar 2021年5月21日的文章 <A Developer's Guide To Blazor Component Libraries> [1] Blazor 的 ...

  2. protobuf3 自定义option_Protobuf3 语法指南

    以前我翻译了 Protobuf2 语法指南,现在 千念飞羽把protobuf3的语法指南也翻译了,我也转载一下,读者可以有个参考. 译文地址是: Protobuf3语言指南. 英文原文: Langua ...

  3. ProtoBuf3语法指南(Protocol Buffers)_下

    0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.A ...

  4. ProtoBuf3语法指南(Protocol Buffers)_上

    0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.序 ...

  5. protobuf3 自定义option_ProtoBuf3语法指南(Protocol Buffers)_下

    0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.A ...

  6. XML编程经验――LIBXML2库使用指南

    C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...

  7. Ubuntu16.04安装armadillo库

    1. armadillo说明 armadillo是目前使用比较广的C++矩阵运算库之一,相当于Matlab的C++替代库.许多Matlab的矩阵操作函数都可以找到对应,这对习惯了Matlab的人来说实 ...

  8. Ubuntu21.10下安装使用Armadillo库

    文章目录 一.前言 二.下载安装文件 三.编译与安装 四.代码示例 五.总结 一.前言 Armdillo 矩阵运算速度跟 MATLAB 一个量级,为目前使用比较广的 C++ 矩阵运算库之一,是在 C+ ...

  9. Protobuf 语法指南简析(proto3)

    Protobuf 语法指南简析(proto3) 前言 参考官方Language Guide (proto3)文档,主要是参考了官方文档. 本文介绍如何使用 protocol buffer 语法来构造 ...

最新文章

  1. 人工智能离我们有多远/近?
  2. uml 时序图_程序猿都应学习的语言:看 25 张图学 UML
  3. 大数据笔记(二十一)——NoSQL数据库之Redis
  4. 协议 UDP、TCP UDP的接发数据的步骤
  5. 2020软考架构设计师真题
  6. 使用Outlook发送邮件自定义发件人
  7. Mac音频录制软件哪个好 怎么录制屏幕声音
  8. Lambda表达式的一些相关知识理解
  9. Spring MVC 双亲上下文的说明
  10. JS设置select标签选中的值
  11. 计算机科学导论的探讨论文,计算机科学导论论文
  12. Hadoop实战记录-目录
  13. IOT-OS之RT-Thread(十三)--- 网络分层结构 + netdev/SAL原理
  14. python解析pcap提取{src ip,src port,protocol,dst ip, dst port}五元组,再提取网络流(包括前向流与后向流)
  15. MATALB实践分享——批量读取表格文件
  16. mysql case when then end 和 if判断 常见使用方法
  17. 【css画圆圈用线连接】
  18. 《高性能网站建设进阶指南》
  19. VS插件_Supercharger_Magic Comments_ Line Size and Color注释显示字体大小和颜色
  20. [linux]:对于linux新手常用的20个命令

热门文章

  1. 下一代LMS的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. 电子商务行业物流现状分析
  3. 第三周总结(2018-03-12~2018-03-16)
  4. WinXP系统怎么重装?
  5. Vue3 + Echarts 5 绘制带有立体感流线中国地图
  6. Excel 批量重命名照片
  7. vscode中配置latex
  8. LCMS Code Review
  9. uefi怎么念_UEFI和Legacy的区别是什么,请尽量从原理上说明?
  10. 【毕业设计】单片机家用燃气的可视化实时监控报警仪 - 物联网 嵌入式 stm32