- 博客(83)
- 收藏
- 关注
原创 Geopandas以及CMakeList程序编写技巧
CMAKE_CXX_FLAGS: set compiler for c++ language 添加C++的标准支持 "-O3:表示用来调节编译时的优化程度的,最高为-O3,最低为-O0"-Ox这个参数只有在CMake -DCMAKE_BUILD_TYPE=Release时有效,因为debug 版的项目生成的可执行文件需要有调试信息并且不需要进行优化,而 release 版的不需要调试信息但需要优化。生成原来的整数索引的形式。#PROJECT_BINARY_DIR:项目输出路径,通常是./build路径。
2024-05-12 18:13:50 1009 2
原创 pragma omp parallel for与pragma omp critical理解
是OpenMP API中的一个编译器指令,用于在C/C++程序中实现并行计算。这个指令告诉编译器下面的for循环应该被并行执行,即循环的迭代被分配到多个线程中,以便同时执行。这样做的目的是为了利用现代多核处理器的并行处理能力,从而加速循环的执行时间。#pragma omp:表示通过指令前缀调用OpenMp指令parallel:告诉编译器要创建一个并行区域,需要执行多线程forr:表示下面的紧随其后的for循环是要执行并行的循环。
2024-05-10 20:03:50 403
原创 对于Main函数的argc以及argv理解
注意:在program arguments配置下面,我输入的是: (这里有一个空格) (这里还有一个空格)…解释一下:第一个空格代表执行的是表示第一个参数传递给:argv[0] 是程序的名称。(默认值),所以不作修改,传入的第一个参数为默认,选择用空格代替。第三个传入的是需要传入的配置文件(yaml文件),这个…/代表父级目录,所以最终argv[1]:…一开始我也不明白如何配置,然后通过GDB端口输出:print argv[1],我就明白自己错在了哪里,哈哈哈,多用GDB调试,好东西!
2024-04-29 18:11:40 169
原创 OB_GINS_day3
这里值的注意的问题在于:此时emplace_back的类是基于PreintegrationEarthOdo的类,所以在下面这个函数中,返回的preintegration最终是PreintegrationEarthOdo类型的变量。最终执行的是PreintegrationEarthOdo——因为之前的preintegration返回的类型是PreintegrationEarthOdo类型的变量。此时的back()是取出preintegrationlist的最后一个元素,然后向这个元素中加入NewImu。
2024-04-25 11:34:04 709
原创 针对于OB_GINS的CMakeList文件的深入学习
以上就是CMake的install命令的基本结构和各个参数的含义。——这样使用的优点是在多个执行程序使用同一个库的时候,节省空间的内存,但是,链接操作,往往使得程序的运行速度变慢。configure_file 指令通过读取输入文件中的内容,将 CMakeLists.txt 文件中的变量转变为 C/C++ 中可识别的宏定义,然后存入另一个文件中。,同时,将@CMakeTemplate_VERSION_MAJOR@替换成相应的值(经过CMakeList中的VERSION设置,最终 实现值与变量宏定义的对应)
2024-04-09 20:21:24 835
原创 OB_GINS学习day_01
需要注意的是返回顺序是x、y、z、w,和定义的时候是不一样的(Quaternion的构造是标准Eigen格式,特别需要注意四个数的传入顺序是w、x、y、z,对应w+xi+yj+zk),因此在创建shared_ptr对象的过程中调用了类型T的某一个构造函数。(make_share依据类型,以及传入的参数,调用特定的构造函数,创建对象,并实现构造函数的初始化)explicit关键字:explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。
2024-03-10 19:59:15 833
原创 B树的介绍
R-B Tree又称为Red-Black Tree,红黑树。是一种特殊的二叉查找树,红黑树的每个节点上都有存储为表示结点的颜色,可以是红或者黑色。
2024-02-23 20:51:33 1399 1
原创 哈夫曼树的学习以及实践
赫夫曼编码广泛地用于 数据文件压缩。其压缩率通常在 20%~90% 之间。,又称霍夫曼编码,是一种 编码方式,,属于一种 程序算法。赫夫曼编码是 赫哈夫曼树 在电讯通信中的经典的应用之一。(Huffman Tree),还有的叫 霍夫曼树。,构造一颗二叉树,若该树的。
2024-02-13 16:29:33 378
原创 堆的数据结构以及堆的相应操作
二叉树中的堆这里的堆指代的是一种数据结构在一个关键码存在的集合中K = {K1,K2,K3,....,Kn},把它的所有元素按照完全二叉树的顺序存储方式,存储在一个一维数组中,如果根结点的元素值大于其左右孩子的值,并且每个子树都满足这种情况,其对应的堆,我们称为最大堆。
2024-02-08 16:50:13 634
原创 之前看过的前序遍历的线索二叉树感觉写的有点问题 这里更新一下我的思路
【代码】之前看过的前序遍历的线索二叉树感觉写的有点问题 这里更新一下我的思路。
2024-02-07 12:06:59 181
原创 线索二叉树的先序遍历
根据如果结点的左子树为空,那么该结点的左子树的指针,指向该节点的直接前驱,所以在递归调用该结点的左子树的时候,就会发生又回到的B结点的循环造成了。
2024-01-30 14:48:09 210
原创 通俗简单的方式理解线索二叉树
我的理解是:对于每个结点的后继操作也就可以想到是返回了pre =前一个递归的根结点也就是在当前结点的前一个结点,理所应当需要将pre = 前一个递归里面的root ,这样就可以操作使得前面一次递归的root结点的右孩子等于当递归中的root结点。
2024-01-30 11:27:03 152
原创 非递归的先序遍历与非递归的中序遍历
如果结点没有右子树(该结点访问完毕)------>根据栈顶的指示回退,访问栈顶元素(也就是回退到该结点访问之前压入栈的栈顶元素),并访问栈顶元素的右子树,重复步骤一。如果左子树为空(结点访问完毕)------>根据栈顶元素指示回退,返回栈顶元素(也就是回退到该结点访问之前压入栈的栈顶元素),并访问栈顶元素的右子树,重复步骤一。如果该结点没有左子树,那么访问该结点的data。首先访问该结点的数据(非空打印数据)如果结点有左子树,那么该结点入栈;如果该结点有右子树,重复步骤一;如果左子树非空,则重复步骤一。
2024-01-25 21:43:17 176
原创 树的学习day01
根:根结点(没有前驱)叶子:终端结点(没有后继)森林:指的是m棵互不相交的树组成的集合(例如:删除R以后形成的A,B,C子树所形成的集合)有序树:各结点子树从左向右有序,不能交换无序树:各个结点之间可以互换位置双亲:上层的那个结点(直接前驱parrrent)孩子:下层结点的子树(直接后继child)兄弟:同一个双亲下的同层结点(孩子直接互称兄弟)堂兄弟:双亲位于同一层的简单(但是并非属于同一个双亲)祖先:从根到该结点所经历的分支的所有结点子孙:从该结点的下层子树中的任意结点结点:树的数
2024-01-24 21:36:10 952
原创 文章阅读总结:多传感器融合:GNSS微弱信号场景的补救措施
在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bc97f8b9ba1042238eb0e027a4d4bf94.png)因子图存在着:**两类节点: 变量节点和对应的函数节点**变量节点所代表的变量是函数节点的自变量。Factor Graph 是概率图的一种,是对函数因子分解的表示图,一般内含两种节点,变量节点和函数节点。一致性指的是在该框架中能够保持一致性地更新变量的值,使得整个概率图模型中的变量和因子之间的关系是一致的。# 文献阅读笔记[IF 18.6]
2024-01-16 15:46:26 339
原创 论文Renderable Neural Radiance Map for visual navigation
latent code通常指的是一个潜在空间中的向量,它用于表示3D场景的特征或属性,表示了场景中的一个特定视图或对象。在NeRF中,这个潜在的编码被用来生成场景中的3D结构和颜色。通过学习这个潜在空间的编码,NeRF可以在渲染时生成逼真的图像。这种编码的使用允许NeRF模型在训练期间对观察到的视图进行建模,从而使其能够在测试时生成高质量的图像。这些编码可以捕获场景中的几何形状、材质、光照等信息,从而帮助生成高质量的三维重建。latent code的设计对于NeRF模型的性能和生成能力具有重要影响。
2024-01-08 14:37:05 368
原创 【多传感器融合导航论文阅读】
Factor Graph 是概率图的一种,是对函数因子分解的表示图,一般内含两种节点,变量节点和函数节点。两类节点: 变量节点和对应的函数节点变量节点所代表的变量是函数节点的自变量。同类节点之间没有边直接相连。
2023-12-30 16:56:50 393
原创 SLAM PnP问题以及相关基础知识
目标泛函是在优化问题中使用的一种数学工具,目标泛函是一个函数,它将一个或多个函数映射到一个实数。它常用于描述需要最小化或最大化的函数。在优化问题中,我们通常希望找到使得某个特定函数取得最大值或最小值的变量值。目标泛函可以帮助我们形式化地表达这些优化目标,并通过数学方法来寻找最优解。例如,在最小二乘法中,目标泛函是一个关于模型参数的函数,我们希望通过调整参数来最小化目标泛函。在变分问题中,目标泛函是一个关于函数的函数,我们希望找到一个函数,使得目标泛函取得最小值。
2023-12-29 16:18:15 414
原创 明确先验概率,后验概率
事件发生前的预判概率。可以是基于历史数据的统计,可以由背景常识得出,也可以是人的主观观点给出。一般都是单独事件概率,如P(x),P(y)。(是在没有给出数据集前对结果的估计)
2023-12-29 10:52:33 340
原创 leetcode2两数加和问题(链表)
先创建一个head头部结点以及一个尾部结点(tail)指向头部结点,然后,让tail指向当前的tail的next用来插入下一个。②判断该Val值与10求余(mod)后是否大于0,如果大于0, 则需要在下一个结点进位。最关键的步骤:实现l1,l2结点数值相加后构建新的存储求和后的结点.此时。①创建一个int类型的局部变量,用来存储两个结点的Val值。head)//head为空。最后,循环判断两个链表是否为空,最后返回head.if(l1)//l1非空。
2023-12-25 21:09:10 420
原创 循环链表的学习以及问题汇总
*报错原因:**因为没有提前对_tag_CircleListNode重命名为CircleListNode,所以,在定义的时候,必须在结构体内 使用struct _tag_CircleListNode 来定义想要定义的该类型的结构体的指针next。[修改1](https://img-blog.csdnimg.cn/direct/eb5f2fe5374746279a10c41ef153c37c.png)**需要注意的是:此时应该是head->next指向空nullptr,而非head = nullptr**
2023-12-24 21:39:31 421
原创 leetcode160相交链表思路解析
分别让tmp1以及tmp2的结点分别先指向headA以及headB,当遍历完成后,再让tmp1以及tmp2分别指向haedB和headA反转。
2023-12-23 14:04:36 512
阅读论文-主要方向多传感器融合定位方向
2024-01-29
C++类型转换 涉及static-cast,reinterpret-cast,dynamic-cast,const-Cast
2023-11-22
出租车轨迹数据计算 VS2017
2023-02-18
武汉大学-测绘程序设计上册代码学习 反距离加权插值
2023-02-18
EasyGPS的案例程序二-Matlab
2023-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人