从 Matlab 到 Armadillo 需要掌握的一些基本操作

本文介绍了从Matlab过渡到Armadillo C++库时需要掌握的基本操作,包括Armadillo的数据类型如dmat、dvec等,以及表达式生成、基本运算、下标变换、复数处理和矩阵拼接等核心功能。提醒读者注意Armadillo的起始索引为0,并鼓励反馈和交流。
摘要由CSDN通过智能技术生成

从 Matlab 到 Armadillo 需要掌握的一些基本操作

Matlab 在科研和一些算法的快速验证方面有着非常明显的优势,很多人都习惯了Matlab的矩阵操作运算,但是很多时候,一些利用Matlab开发的算法需要用C++去实现,为了尽可能兼容写Maltab算法的习惯,Armadillo是一个比较不错的C++替代库,能较好平衡易用性和速度。Armadillo是由一系列头文件定义的模板函数和类组成的,所以只需要将这些头文件包含到你的工程中就可以开发了。关于Armadillo的更多介绍,大家可以搜索相关的博客。这里只是为方便Matlab-ors快速的切换到Armadillo的使用中来继续自己的开发需要了解的一些基本操作,有了这些操作应对一般开发足够了。

在Mallab开发时,大家不需要太关注数据类型,只要逻辑对,代码都可以运行,但是在C++中,你需要时刻了解你的变量的类型及存储精度,所以为了养成好的习惯,建议在生成Armadillo的一些对象时给出明确类型指定。例如Armadillo 定义了很多类型,矩阵Mat,列向量Col/Vec, 行向量rowvec等等,这些基本类都默认为double精度,当然它们也可以用float精度,所以建议在使用这些基本类时直接直接数据精度。
Armadillo 经常使用的一些类型,dmat (double 型矩阵),dvec (double型数列),cx_dmat (double精度的复数矩阵),cx_dvec(double精度的复数数列),uvec (无符号word型整数列),umat(无符号word型整数列)。注意,在armadillo中推荐用uvec和uword类型来作索引,尤其是同时访问矩阵中的多个值使用uvec很方便。

Armadillo 基本操作

  1. 表达式生成矩阵数列
 dmat A = "1,2,3;3,4,3"; // 逗号,表示行元素间隔,分号;表示换行;
 dvec V = "1 3 4"; // 列向量
 drowvec V = "1 3 4"; // 行向量
  1. 利用函数生成矩阵
dmat A = randu<dmat>(3,3); // 均匀分布
dmat B = zeros<dmat>(3,3); // 全0矩阵
  1. 基本四则运算
dmat C = A+B; // 加法
dmat C = A % B; // 数组乘法即.*,不支持matalb中的broadcast功能
dmat C = A * B
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值