Eigen 中的 conservativeResize 和 resize 操作
Eigen 中的 conservativeResize 和 resize 操作
- 对于能够改变大小的动态矩阵,一般会有 resize() 操作。
- resize() 如果不改变原矩阵的大小,则原矩阵大小和元素值都不会有改变,但是如果改变了原来矩阵的大小,则会调用矩阵的析构函数,导致矩阵的元素全部为0。
- 如果想保存矩阵中的元素值,则可以调用 conservativeResize()函数即可。
#include <eigen3/Eigen/Core>
#include <eigen3/Eigen/Dense>
#include <iostream>
int main1(int argc, char const *argv[])
{
Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> matrix;
matrix.resize(2, 3);
matrix << 1, 2, 3, 4, 5, 6;
std::cout << matrix << std::endl;
std::cout << "after resize: " << std::endl;
matrix.resize(3,7); // resize 之后会调用析构函数,原先的值会变为0
std::cout << matrix << std::endl;
/*
输出结果为:
1 2 3
4 5 6
after resize:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
*/
return 0;
}
int main(int argc, char const *argv[])
{
Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> matrix;
matrix.resize(2, 3);
matrix << 1, 2, 3, 4, 5, 6;
std::cout << matrix << std::endl;
std::cout << "after resize: " << std::endl;
// matrix.resize(3,7); // resize 之后会调用析构函数,原先的值会变为0
matrix.conservativeResize(3,7);
std::cout << matrix << std::endl;
matrix.resize(3,7);
std::cout << "不改变大小的 resize() " << std::endl;
std::cout << matrix << std::endl;
/*
输出结果为:
1 2 3
4 5 6
after resize:
1 2 3 0 0 0 0
4 5 6 0 0 0 0
0 0 0 0 0 0 0
不改变大小的 resize()
1 2 3 0 0 0 0
4 5 6 0 0 0 0
0 0 0 0 0 0 0
如果matrix的实际大小不改变,resize函数不做任何操作。
resize操作会执行析构函数:元素的值会被改变,如果不想改变执行
conservativeResize()。
*/
return 0;
}
Eigen 中的 conservativeResize 和 resize 操作的更多相关文章
- Eigen中的noalias(): 解决矩阵运算的混淆问题
作者:@houkai本文为作者原创,转载请注明出处:http://www.cnblogs.com/houkai/p/6349990.html 目录 混淆例子解决混淆问题混淆和component级的操作 ...
- Eigen中的矩阵及向量运算
Eigen中的矩阵及向量运算 ,[+,+=,-,-=] ,[\*,\*=] ,[.transpose()] ,[.dot(),.cross(),.adjoint()] ,针对矩阵元素进行的操作[.su ...
- C语言中关于对目录的操作
原文地址:C语言中关于对目录的操作 目录的操作不论是在嵌入式产品还是应用软件编程都是必不可少的,不同的开发语言可能略有不同,笔者主要是讨论在Linux平台下对目录的一系列操作: 1.获取当前目录操作: ...
- Node.js 中MongoDB的基本接口操作
Node.js 中MongoDB的基本接口操作 连接数据库 安装mongodb模块 导入mongodb模块 调用connect方法 文档的增删改查操作 插入文档 方法: db.collection(& ...
- Linux 中 Vi 编辑器的简单操作
Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi filename //打开或新 ...
- JS中基本window.document对象操作以及常用事件!
一.找到元素 1.document.getELementById("id"):根据id找,最多找一个. var a=document.getELementById("id ...
- SQL Server中的Image数据类型的操作
原文:SQL Server中的Image数据类型的操作 准备工作,在库Im_Test中建立一张表Im_Info,此表中有两个字段,分别为Pr_Id (INT),Pr_Info (IMAGE),用来存储 ...
- 在应用程序中实现对NandFlash的操作
以TC58NVG2S3ETA00 为例: 下面是它的一些物理参数: 图一 图二 图三 图四 图五 图6-0 图6-1 说明一下,在图6-1中中间的那个布局表可以看做是实际的NandFlash一页数据的 ...
- Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...
- 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET
今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...
随机推荐
- el-table 如果文字过多展示...
1 <el-table-column label="任务名称" width="120px" align="center" :show- ...
- 摘抄笔记 centos内核优化
- 【STM32】简述串口中断流程
串口中断的实现(函数名参考MX生成代码) 初始化: 1.void MX_USART1_UART_Init() 基于UART_HandleTypeDef huart,对huart的成员进行配置,并将数据 ...
- 使用python+poco+夜神模拟器进行自动化测试。
https://blog.csdn.net/saint_228/article/details/84889017 网易最近出的一款自动化UI测试工具:Airtest 挺火的,还受到谷歌的推荐.我试着用 ...
- 3MP/5MPNetwork-Camera摄像头默认口令
网络资产搜索: shodan: 找到5MP-Network-Carema 登陆:admin/a***n End!!!
- Linux 使用Apache服务部署静态网站
网站服务程序 我们平时访问的网站服务就是Web网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务.如图所示,Web网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求 ...
- 西瓜书3.4 解题报告(python 多分类学习 十折交叉法)
偷懒找了UCI上最小的一个数据集,数据大约是集装箱起重机的转动速度.角度,判断其力量大小(我不懂起重机啊啊啊) 虽然不懂但并不妨碍写代码分类,显然标记就是力量,分为0.3.0.5.0.7三种.具体的模 ...
- 6-8次PTA题目集总结
一,前言 1,第六次作业(针对电信计费) 本次作业主要是对类的操作,题目已经给出类图,类图里面已经给了各种方法以及属性.此次作业涉及了座机的计费方式,市内省内省外怎么计费.难度偏难,主要是各类之间怎么 ...
- systick 理解
systick 中断的优先级往往设置为最低值,而不是最高值:如果设置为最低值不会发生上图标号[6]处的情况,设置为最低可能会被其他中断抢占,延长systick的响应时间,但是这个延迟不会累计,因为sy ...
- 执行kubectl api-resources 报错error: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
1.故障现象:error: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the serve ...