c++的armadillo库语法指南
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库语法指南相关推荐
- Blazor 组件库开发指南
翻译自 Waqas Anwar 2021年5月21日的文章 <A Developer's Guide To Blazor Component Libraries> [1] Blazor 的 ...
- protobuf3 自定义option_Protobuf3 语法指南
以前我翻译了 Protobuf2 语法指南,现在 千念飞羽把protobuf3的语法指南也翻译了,我也转载一下,读者可以有个参考. 译文地址是: Protobuf3语言指南. 英文原文: Langua ...
- ProtoBuf3语法指南(Protocol Buffers)_下
0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.A ...
- ProtoBuf3语法指南(Protocol Buffers)_上
0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.序 ...
- protobuf3 自定义option_ProtoBuf3语法指南(Protocol Buffers)_下
0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.A ...
- XML编程经验――LIBXML2库使用指南
C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...
- Ubuntu16.04安装armadillo库
1. armadillo说明 armadillo是目前使用比较广的C++矩阵运算库之一,相当于Matlab的C++替代库.许多Matlab的矩阵操作函数都可以找到对应,这对习惯了Matlab的人来说实 ...
- Ubuntu21.10下安装使用Armadillo库
文章目录 一.前言 二.下载安装文件 三.编译与安装 四.代码示例 五.总结 一.前言 Armdillo 矩阵运算速度跟 MATLAB 一个量级,为目前使用比较广的 C++ 矩阵运算库之一,是在 C+ ...
- Protobuf 语法指南简析(proto3)
Protobuf 语法指南简析(proto3) 前言 参考官方Language Guide (proto3)文档,主要是参考了官方文档. 本文介绍如何使用 protocol buffer 语法来构造 ...
最新文章
- 人工智能离我们有多远/近?
- uml 时序图_程序猿都应学习的语言:看 25 张图学 UML
- 大数据笔记(二十一)——NoSQL数据库之Redis
- 协议 UDP、TCP UDP的接发数据的步骤
- 2020软考架构设计师真题
- 使用Outlook发送邮件自定义发件人
- Mac音频录制软件哪个好 怎么录制屏幕声音
- Lambda表达式的一些相关知识理解
- Spring MVC 双亲上下文的说明
- JS设置select标签选中的值
- 计算机科学导论的探讨论文,计算机科学导论论文
- Hadoop实战记录-目录
- IOT-OS之RT-Thread(十三)--- 网络分层结构 + netdev/SAL原理
- python解析pcap提取{src ip,src port,protocol,dst ip, dst port}五元组,再提取网络流(包括前向流与后向流)
- MATALB实践分享——批量读取表格文件
- mysql case when then end 和 if判断 常见使用方法
- 【css画圆圈用线连接】
- 《高性能网站建设进阶指南》
- VS插件_Supercharger_Magic Comments_ Line Size and Color注释显示字体大小和颜色
- [linux]:对于linux新手常用的20个命令