- 浏览: 702266 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (181)
- Matlab (16)
- Java (26)
- autoHotkey (4)
- openCV (1)
- C++ (50)
- PDF-XChange Viewer (2)
- 学术 (11)
- javascript (4)
- linux (11)
- SWT (9)
- latex (7)
- GAE (2)
- windows (6)
- C# (3)
- PS (20)
- JNI (4)
- latex,批处理 (0)
- 批处理 (4)
- Android (5)
- 矩阵论 (1)
- SVM (1)
- 概率图模型 (0)
- Python (12)
- Eigen (5)
- 编程题 (1)
- MKL (1)
- 神经网络 (9)
- 最优化 (2)
- 摄影 (1)
- PPT (0)
- After Effects (3)
- CUDA (3)
- caffe (0)
- MXNet (2)
- svn (1)
- R (0)
- 虚拟机 (0)
- tensorflow (7)
- theano (1)
- Keras (1)
- vim (1)
- xgboost (1)
- spark (6)
- eclipse (2)
- word2vec (0)
- hadoop (1)
- dmlc (1)
- git (0)
最新评论
-
jeffersonz:
请问大神,这个插件记录下来的脚本为什么不能再Extendscr ...
PhotoShop - 记录PS的所有操作为JavaScript代码 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道cherish ...
Eigen的编译选项;MKL的使用 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道 您好,您的工 ...
Eigen的编译选项;MKL的使用
Map类 是 矩阵库Eigen中用来将内存数据 映射为 任意形状的矩阵的类。
其基本用法参见:http://cherishlc.iteye.com/blog/1968238
Map的官方文档:http://eigen.tuxfamily.org/dox/group__TutorialMapClass.html
Stride类的官方文档:http://eigen.tuxfamily.org/dox/classEigen_1_1Stride.html
这里给出其最为灵活的用法的一个示例:
将一个矩阵的第一行copy到另一个矩阵(要是Eigen有reshape函数就不用这么麻烦了。。。别说,还真有!可以用resize代替~~)
先上结果:
附上代码:
其基本用法参见:http://cherishlc.iteye.com/blog/1968238
Map的官方文档:http://eigen.tuxfamily.org/dox/group__TutorialMapClass.html
Stride类的官方文档:http://eigen.tuxfamily.org/dox/classEigen_1_1Stride.html
这里给出其最为灵活的用法的一个示例:
将一个矩阵的第一行copy到另一个矩阵(要是Eigen有reshape函数就不用这么麻烦了。。。别说,还真有!可以用resize代替~~)
先上结果:

附上代码:
#include <Eigen/Core> #include <iomanip> #include <iostream> using std::setw; #define printlnExp(exp) std::cout<<std::left<<setw(30)<<(std::string(#exp)+" 为:")<<std::endl<<(exp) #define printlnExpln(exp) printlnExp(exp)<<std::endl void main() { using namespace Eigen; MatrixXd m (4, 6); for (int i = 0; i < m.size(); ++i) { m (i) = i; } printlnExpln (m); MatrixXd msub (2, m.cols() / 2); //将 m 的第一行存入 msub中。 Stride 的第一个参数为OuterStride,对于按列优先存储的矩阵来说,就是 列与列之间指针的差值; 第二个参数为InnerStride,即两个相邻元素 指针之间的差值 msub = Map<MatrixXd, 0, Stride<Dynamic, Dynamic> > (m.data(), msub.rows(), msub.cols(), Stride<Dynamic, Dynamic> (m.rows() * msub.rows(), m.rows() ) ); printlnExpln (msub); ////////////////////////////////////////////////////////////////////////// MatrixXd msub2 = m.row (0); msub2.resize (2, m.cols() / 2);//将resize函数作为reshape函数使用,可以达到同样的效果, 是不是觉着很爽啊~ 但是反过来,,,不可能用此方法去给m的第一行赋值 printlnExpln (msub2); ////////////////////////////////////////////////////////////////////////// //以下方法显然是错的。。。 MatrixXd msub3 (2, m.cols() / 2); msub3 = m.row (0); printlnExpln (msub3) << std::endl; std::cout << "以下是测试将m的第一行置为msub中的相反数////////////" << std::endl << std::endl; m.row (0) = -MatrixXd::Map (msub.data(), 1, m.cols() ); //m.row(0) = -Map<MatrixXd>(msub.data(), 1, m.cols());//这样写也行 printlnExpln (m); }
发表评论
-
C++函数中的静态变量
2019-07-19 11:22 862在C++中,可以在成员函数中使用静态变量,从而间接达到在hpp ... -
tensorflow 静态编译笔记 -- linux系统
2018-11-05 14:26 0注: 1、编译tensorflow静态库 很简单,参见: h ... -
gperftools笔记
2018-06-27 14:30 0export LD_LIBRARY_PATH=LD_LIBR ... -
dmlc分布式线性模型编译笔记
2018-06-06 10:37 22291、使用第三方修改后的wormhole工程 原始工程wor ... -
C++中读取控制台输出,并将文件指针FILE*转换为istream
2017-11-27 15:03 1945解决的问题: 1、通过执行系统的bash命令后,获取其输出( ... -
c++中使用boost库在共享内存中存储map
2017-11-09 11:37 5628boost库中的interprocess包可以在共享内存中创建 ... -
近似最近邻算法库FLANN
2017-04-25 18:45 0FLANN库是计算近似最近邻的库, 问题定义如下: 给定距离函 ... -
C++杂记-- 重定向std::cout等
2017-04-18 17:28 20361、屏蔽std::cout 参见:http://stackov ... -
CMake指定目标代码的平台(win32,x64)
2016-06-03 20:54 11840主要参考自:http://blog.c ... -
windows 10下安装GPU版MXNet
2016-06-03 21:28 8652上回说到编译CPU版的MXNet: http://cheris ... -
windows下安装CPU版mxnet
2016-05-23 23:14 17685MXnet (mix net)类似Caffe,Tensorfl ... -
Linux C++编译及 静态/动态 链接库 笔记
2015-12-20 19:49 61201、C++文件的编译 g++参 ... -
Linux (Ubuntu) 下 Eclipse C++ 环境配置
2015-12-08 21:49 19951、安装JDK 参见http://blog.csdn.net/ ... -
Photoshop插件开发-filter
2015-10-11 22:53 3430初学,,感觉PS插件的文档很烂,,教程也很少,,也就这么简单学 ... -
使Visual Assist X支持CUDA的.cu文件的代码提示
2015-07-17 00:05 2388现在安装CUDA很方便了,直接支持Visual Studio。 ... -
CUDA程序block和thread超出硬件允许值时的异常
2015-07-13 11:32 3802调用CUDA的核函数时指定block 和 thread大小,该 ... -
创建及使用DLL
2014-09-29 15:22 1274此篇仅作简要的记录,作为备忘。 更为详细的可以参考:http: ... -
matlab的mexFunction中使用std::cout(部分转载)
2014-09-27 15:37 2192在matlab、C++混合编程的时候,可能会用到之前的代码。代 ... -
Eigen库:那些年我们一起经历的bug
2014-09-24 18:39 19191、使用auto声明新变量 ... -
C++:无虚函数的类作为有虚函数类的父类时产生Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
2014-09-24 09:48 2050调程序时忘了为啥,写了一小段测试程序,再简单不过,结果跑出了E ...
相关推荐
在实际应用中,我们常常需要根据具体需求调整代码。例如,在机器学习算法中,可能需要使用`Eigen::MatrixXd`来存储权重矩阵,使用`Eigen::VectorXd`来存储输入向量。在计算过程中,利用表达式模板可以编写出简洁高效...
稀疏线性代数部分则探讨了处理大型稀疏矩阵的高效方式,而几何学部分则展示了Eigen库在几何计算中的应用。 Eigen库的API设计允许灵活地使用C++进行数学运算,使得数学计算和矩阵操作的代码既简洁又高效。它的设计...
标题 "em_cpp_mapa" 指的是一项使用 C++ 实现的项目,它基于 Mauro Maggioni 和 Guangiang Chen 原始的 MATLAB 代码,并进行了转换以利用 Eigen 库和 Sam 提供的代码,特别是涉及 SVD(奇异值分解)的部分。...
在本篇中,我们将深入探讨Pybind11的核心概念、安装与配置、基本用法以及一些高级特性。 1. **核心概念** Pybind11的核心思想是提供一种类型安全、表达性强的方式来将C++函数和类暴露给Python。它通过模板元编程...
除了基本的点云数据获取和显示之外,还可以探索更多高级的应用场景,如目标检测与跟踪、三维重建、手势识别等。这些应用场景往往需要更加复杂的算法和技术支持,例如机器学习算法、深度学习网络等。 总之,Kinect...
例如,`std::vector`、`std::map`、`std::string`和`std::iostream`等。其中,Dinkumware、RogueWave、SGI STL和STLport是不同实现的代表,各有优缺点。 2. **C++准标准库 Boost**:Boost是一个强大的库集合,包含...
深入学习,C++中的STL(Standard Template Library,标准模板库)提供了许多数据结构,如vector、list、set、map等,这些数据结构配合`<algorithm>`中的函数,可以方便地实现各种高级算法。例如,优先队列(priority...
在IT行业中,编程语言C++是一种广泛用于系统软件、应用软件、游戏开发、数据分析等多个领域的高级编程语言。本文将深入探讨标题和描述中提到的"cpp代码-数据分析软件",以及它如何支持直接分析和加权计算。 首先,...
综上所述,这个"Math-Modeling-Code:2021数学模型分析源代码"的资源提供了2021年数学建模问题的C++实现,涵盖了从基本编程到高级应用的诸多方面,是学习和研究数学建模实践的好材料。通过深入研究这些代码,可以了解...
7. **第三方库**:C++生态系统中有许多优秀的第三方库,如Boost、Eigen(用于线性代数计算)、Google Protocol Buffers(用于数据序列化)等,POSN-BUU可能依赖其中的一些进行开发。 8. **编译与构建工具**:项目...