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 线性代数基础程序库 (三)相关推荐

  1. uBLAS——Boost 线性代数基础程序库 (二)

    uBLAS--Boost 线性代数基础程序库 (1)简化命名空间 namespace ublas = boost::numeric::ublas; (2)矩阵定义及初始化 #include <b ...

  2. uBLAS——Boost 线性代数基础程序库

    uBLAS:Basic Linear Algebra Subprograms,基于 Boost 的 C++ 模板类库. (1)其在 Boost 位于的命名空间(namespace)为: boost:: ...

  3. 吴恩达机器学习【第三天】线性代数基础知识

    前言:昨天又偷懒了,学到一半就跑了 之前觉得机器学习对线性代数的要求很高,但是在这个课程中,老师给出的线性代数基础知识,却很少,更多是强调应用. 文章目录 矩阵是什么 矩阵的加法和减法[与常数相乘] ...

  4. 科学计算:Python VS. MATLAB(3)----线性代数基础

    科学计算:Python VS. MATLAB(3)----线性代数基础 按:在介绍工具之前先对理论基础进行必要的回顾是很必要的.没有理论的基础,讲再多的应用都是空中楼阁.本文主要设涉及线性代数和矩阵论 ...

  5. 矩阵论(零):线性代数基础知识整理(1)——逆矩阵、(广义)初等变换、满秩分解

    矩阵论专栏:专栏(文章按照顺序排序) 线性代数是矩阵论的先修课程,本篇博客整理线性代数的基础理论知识,为矩阵论的学习做准备.限于篇幅,梳理的重点将在定理和结论上(只给出部分必要的定义),对最基础的概念 ...

  6. 线性代数基础2--齐次线性方程组的解及方程组解的总结

    什么是齐次线性方程组,什么是非齐次线性方程组?                     齐次线性方程组(homegeneous linear equations): 一般的,如果线性方程组中所有方程的 ...

  7. matlab第八章答案,MATLAB课件第八章线性代数基础

    <MATLAB课件第八章线性代数基础>由会员分享,可在线阅读,更多相关<MATLAB课件第八章线性代数基础(15页珍藏版)>请在人人文库网上搜索. 1.第八章 线性代数基础1. ...

  8. 张量网络算法基础(三、格点模型)

    格点模型 格点模型 1. 热力学基础 经典热力学基础 量子格点模型的热力学基础 2. 海森堡模型的基态计算 量子格点模型的基态问题 基态计算的退火算法 基态计算的严格对角化算法 基于自动微分的基态变分 ...

  9. 人工智能之数学基础篇—线性代数基础(上)

    人工智能之数学基础篇-线性代数基础(上) 1 向量 1.1 标量 1.2 向量 1.3 向量的两个基本运算 1.3.1 向量的加法 1.3.2 向量的数乘 1.4 向量与数据 2 矩阵 2.1 矩阵的 ...

最新文章

  1. Random在for以及foreach循环中产生相同随机数问题
  2. 干货丨关于机器学习那些你不知道的“民间智慧”
  3. 学生系统优化(二)- - 窗体代码
  4. 20应用统计考研复试要点(part31)--简答题
  5. 一次完整的Loadrunner基本流程操作
  6. php sequelize,node,express_sequelize 联合查询,node,express,mysql,sequelize - phpStudy
  7. [CQOI2017] 老C的键盘(树形dp + 组合数)
  8. java下载文件夹_java如何通过共享目录下载文件夹(有子文件夹)到本地目录?...
  9. Flask知识点查阅
  10. 每天一个设计模式之订阅-发布模式
  11. linux防火墙 限制流量,linux – iptables和阻止可能不可能的流量
  12. c语言乒乓球对手算法,乒乓球学生论文,关于例c语言教学案例设计相关参考文献资料-免费论文范文...
  13. Arduino +合宙ESP32C3 +1.8/1.44 寸TFT液晶屏驱动显示
  14. C#方法名前的方括号是干嘛用的呀?
  15. 前后端分离项目部署到服务器(超详细)
  16. NOIP 陶陶摘苹果
  17. 2009年国际电力行业十大新闻
  18. 使用ansible执行命令时出现Failed to connect to the host via ssh错误
  19. 多省市成立大数据局,加快大数据产业发展
  20. 内网穿透、反向代理(ngrok服务器搭建)

热门文章

  1. Android插件库
  2. ocv特性_SOC-OCV曲线是否始终值得信赖的吗?
  3. linux 内核部分崩溃,Linux 系统内核崩溃分析处理简介
  4. ideagit更新一个文件_idea使用ssh下载的git代码怎么没法更新
  5. Linux查ip出来的pp0,linux下使用shell查看apache IP访问量
  6. python选择语句是什么语句_Python语言中的三种选择语句
  7. axure操作回复_Axure8.0基础教程(31-40)新手必须掌握的基础操作
  8. 人脸生成识别 Towards Pose Invariant Face Recognition in the Wild
  9. Qt总结之二十二:Qt控件QObject
  10. 动态规划(树形DP):HDU 5886 Tower Defence