uBLAS——Boost 线性代数基础程序库 (三)
uBLAS——Boost 线性代数基础程序库
uBLAS——Boost 线性代数基础程序库 (二)
namespace ublas = boost::numeric::ublas;
row() vs matrix_row<> ,column() vs matrix_column<>
(0)功能
- row(A, m)、column(A, n) 用于索引矩阵的某一行,某一列
- matrix_row<>、matrix_column<> 根据矩阵的某一行,某一列创建行向量、列向量
(1)头文件
#include <boost\numeric\ublas\matrix_proxy.hpp>
(2)意义和用法
- (1)row()、column()是函数,接受矩阵,一个行索引/列索引;
- (2)matrix_row<>,matrix_column<>,是模板类,用于列定义
- (3)不需要给 row()、column() 指定参数类型,因为函数具有自动类型推导的功能;
(3)row()、column() 的实现用到了 matrix_row<>、matrix_column<>
matrix_column<M> column (M &data, typename M::size_type j) {return matrix_column<M> (data, j); }
因为函数的自动类型推导,为了避免类型不匹配,推荐使用 row()、column。
矩阵乘法与矩阵向量乘法
使用同一个全局函数:ublas::axpy_prod(),其所在的头文件为
#include <boost\numeric\ublas\operation.hpp>
(1)矩阵向量乘法、
- v=Axv=Ax(默认或 init=true)
- v+=Axv+=Ax(init=false)
BOOST_UBLAS_INLINE V& axpy_prod (const matrix_expression< E1 > & A,const vector_expression< E2 > & x,V & v,bool init = true)
(2)向量矩阵乘法
- v=ATxv=A^Tx(默认或init=true)
- v+=ATxv+=A^Tx(init=false)
BOOST_UBLAS_INLINE V& axpy_prod( const vector_expression< E1 > & e1,const matrix_expression< E2 > & e2,V & v,bool init = true);
(3)矩阵矩阵乘法
- M=AXM=AX(默认或init=true)
- M+=AXM+=AX(init=false)
BOOST_UBLAS_INLINE M& axpy_prod (const matrix_expression< E1 > & e1,const matrix_expression< E2 > & e2,M & m,bool init = true)
将 init = true 或者取默认值,其实是执行 M.clear();
References
[1] Special Products
uBLAS——Boost 线性代数基础程序库 (三)相关推荐
- uBLAS——Boost 线性代数基础程序库 (二)
uBLAS--Boost 线性代数基础程序库 (1)简化命名空间 namespace ublas = boost::numeric::ublas; (2)矩阵定义及初始化 #include <b ...
- uBLAS——Boost 线性代数基础程序库
uBLAS:Basic Linear Algebra Subprograms,基于 Boost 的 C++ 模板类库. (1)其在 Boost 位于的命名空间(namespace)为: boost:: ...
- 吴恩达机器学习【第三天】线性代数基础知识
前言:昨天又偷懒了,学到一半就跑了 之前觉得机器学习对线性代数的要求很高,但是在这个课程中,老师给出的线性代数基础知识,却很少,更多是强调应用. 文章目录 矩阵是什么 矩阵的加法和减法[与常数相乘] ...
- 科学计算:Python VS. MATLAB(3)----线性代数基础
科学计算:Python VS. MATLAB(3)----线性代数基础 按:在介绍工具之前先对理论基础进行必要的回顾是很必要的.没有理论的基础,讲再多的应用都是空中楼阁.本文主要设涉及线性代数和矩阵论 ...
- 矩阵论(零):线性代数基础知识整理(1)——逆矩阵、(广义)初等变换、满秩分解
矩阵论专栏:专栏(文章按照顺序排序) 线性代数是矩阵论的先修课程,本篇博客整理线性代数的基础理论知识,为矩阵论的学习做准备.限于篇幅,梳理的重点将在定理和结论上(只给出部分必要的定义),对最基础的概念 ...
- 线性代数基础2--齐次线性方程组的解及方程组解的总结
什么是齐次线性方程组,什么是非齐次线性方程组? 齐次线性方程组(homegeneous linear equations): 一般的,如果线性方程组中所有方程的 ...
- matlab第八章答案,MATLAB课件第八章线性代数基础
<MATLAB课件第八章线性代数基础>由会员分享,可在线阅读,更多相关<MATLAB课件第八章线性代数基础(15页珍藏版)>请在人人文库网上搜索. 1.第八章 线性代数基础1. ...
- 张量网络算法基础(三、格点模型)
格点模型 格点模型 1. 热力学基础 经典热力学基础 量子格点模型的热力学基础 2. 海森堡模型的基态计算 量子格点模型的基态问题 基态计算的退火算法 基态计算的严格对角化算法 基于自动微分的基态变分 ...
- 人工智能之数学基础篇—线性代数基础(上)
人工智能之数学基础篇-线性代数基础(上) 1 向量 1.1 标量 1.2 向量 1.3 向量的两个基本运算 1.3.1 向量的加法 1.3.2 向量的数乘 1.4 向量与数据 2 矩阵 2.1 矩阵的 ...
最新文章
- Random在for以及foreach循环中产生相同随机数问题
- 干货丨关于机器学习那些你不知道的“民间智慧”
- 学生系统优化(二)- - 窗体代码
- 20应用统计考研复试要点(part31)--简答题
- 一次完整的Loadrunner基本流程操作
- php sequelize,node,express_sequelize 联合查询,node,express,mysql,sequelize - phpStudy
- [CQOI2017] 老C的键盘(树形dp + 组合数)
- java下载文件夹_java如何通过共享目录下载文件夹(有子文件夹)到本地目录?...
- Flask知识点查阅
- 每天一个设计模式之订阅-发布模式
- linux防火墙 限制流量,linux – iptables和阻止可能不可能的流量
- c语言乒乓球对手算法,乒乓球学生论文,关于例c语言教学案例设计相关参考文献资料-免费论文范文...
- Arduino +合宙ESP32C3 +1.8/1.44 寸TFT液晶屏驱动显示
- C#方法名前的方括号是干嘛用的呀?
- 前后端分离项目部署到服务器(超详细)
- NOIP 陶陶摘苹果
- 2009年国际电力行业十大新闻
- 使用ansible执行命令时出现Failed to connect to the host via ssh错误
- 多省市成立大数据局,加快大数据产业发展
- 内网穿透、反向代理(ngrok服务器搭建)
热门文章
- Android插件库
- ocv特性_SOC-OCV曲线是否始终值得信赖的吗?
- linux 内核部分崩溃,Linux 系统内核崩溃分析处理简介
- ideagit更新一个文件_idea使用ssh下载的git代码怎么没法更新
- Linux查ip出来的pp0,linux下使用shell查看apache IP访问量
- python选择语句是什么语句_Python语言中的三种选择语句
- axure操作回复_Axure8.0基础教程(31-40)新手必须掌握的基础操作
- 人脸生成识别 Towards Pose Invariant Face Recognition in the Wild
- Qt总结之二十二:Qt控件QObject
- 动态规划(树形DP):HDU 5886 Tower Defence