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 操作的更多相关文章

  1. Eigen中的noalias(): 解决矩阵运算的混淆问题

    作者:@houkai本文为作者原创,转载请注明出处:http://www.cnblogs.com/houkai/p/6349990.html 目录 混淆例子解决混淆问题混淆和component级的操作 ...

  2. Eigen中的矩阵及向量运算

    Eigen中的矩阵及向量运算 ,[+,+=,-,-=] ,[\*,\*=] ,[.transpose()] ,[.dot(),.cross(),.adjoint()] ,针对矩阵元素进行的操作[.su ...

  3. C语言中关于对目录的操作

    原文地址:C语言中关于对目录的操作 目录的操作不论是在嵌入式产品还是应用软件编程都是必不可少的,不同的开发语言可能略有不同,笔者主要是讨论在Linux平台下对目录的一系列操作: 1.获取当前目录操作: ...

  4. Node.js 中MongoDB的基本接口操作

    Node.js 中MongoDB的基本接口操作 连接数据库 安装mongodb模块 导入mongodb模块 调用connect方法 文档的增删改查操作 插入文档 方法: db.collection(& ...

  5. Linux 中 Vi 编辑器的简单操作

    Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi  filename //打开或新 ...

  6. JS中基本window.document对象操作以及常用事件!

    一.找到元素 1.document.getELementById("id"):根据id找,最多找一个. var a=document.getELementById("id ...

  7. SQL Server中的Image数据类型的操作

    原文:SQL Server中的Image数据类型的操作 准备工作,在库Im_Test中建立一张表Im_Info,此表中有两个字段,分别为Pr_Id (INT),Pr_Info (IMAGE),用来存储 ...

  8. 在应用程序中实现对NandFlash的操作

    以TC58NVG2S3ETA00 为例: 下面是它的一些物理参数: 图一 图二 图三 图四 图五 图6-0 图6-1 说明一下,在图6-1中中间的那个布局表可以看做是实际的NandFlash一页数据的 ...

  9. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作

    在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...

  10. 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET

    今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...

随机推荐

  1. linux下安装JDK 1.8 (Open JDK)

    CenterOS 7 阿里云,华为云都可以 检测是否已经安装过JDK yum list --installed|grep jdk 或者java  -version看下能不能执行. 如果已安装过但jdk ...

  2. Coursera Programming Languages, Part C 华盛顿大学 Week 1

    来进入这一系列课程的最后一 Part 啦! \(P1\) 我们介绍了 \(ML\),一种 static typing 的 functional language \(P2\) 我们介绍了 \(Rack ...

  3. HCIA-ICT实战基础11-网络地址转换NAT&NAPT

    HCIA-ICT实战基础-网络地址转换 目录 NAT概述 静态NAT 动态NAT NAPT.Easy-IP NAT Server 扩展 NAT ALG 扩展 双向NAT 扩展 重叠NAT转换方式 1 ...

  4. oracle修改表中的列

    declare v_Count1 int := 0; v_Count2 int := 0; v_Count3 int := 0; v_Count4 int := 0; v_Count5 int := ...

  5. 记录一次 网关负载 流量不均匀 cpu使用率不均衡问题

    网关负载  流量不均匀  cpu使用率不均衡问题??? 1.压力机访问源  有多少ip 有10个? 还是20个? 就是样本源不多的话,负载上hash的话  就你可能不是真实的访问需求 ,你客户端就那么 ...

  6. ubuntu | virtualbox报错:不能为虚拟电脑打开一个新任务

    百度了几个办法 都不行. 还得是gxd,说在vmware虚拟机设置勾上这个就行了

  7. redis 常用指令

    redis指令有些相似,记忆起来不太容易,在此做一下整理 序号 类型 指令 参数 作用 例子 1 string set key value 存储一个 string 类型的值 set a aa 2 st ...

  8. 前端实现文件上传——angular版本+ant design

    html代码 <nz-upload *ngIf="uploadParams.parserTypeId==3 || uploadParams.parserTypeId==4" ...

  9. JMeter参数化(二)--数据库参数化

    1.下载mysql驱动,解压得到mysql-connector-java-8.0.17.jar(驱动一般放在java的 \java\jre\lib\ext 路径下): 2.在 测试计划-->浏览 ...

  10. Pintia 7-3 列车调度

    7-3 列车调度 (25 分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨 ...