KD-Tree的原理及其在KNN中的应用(附Python代码) 回溯到某个节点,比较该节点和目标节点之间的距离时并不是计算欧氏距离(其实使用欧氏距离也可以),而是在当前分割维度上的数据之差,这是因为多维数据进行二分查找分割时,使用的是平行于某个坐标轴的超平面,(1)从根节点出发进行查找,根据树深计算当前的分割维度split,若目标结点在分割维度上的数据小于当前节点,则进入左子树遍历,否则进入右子树遍历;(2)重复步骤一,直到找到叶子节点,记录当前目标节点和当前节点的距离为最小距离,当前节点为最近节点,并开始回溯;任意节点的子树的高度差都小于等于1。
第4讲 -- 线性调频连续波LFMCW测量原理:测距、测速、测角 连续发送L个chrip信号,其相位信息是随着chrip个数在不断变化的,因此对回波信号按照距离维-多普勒维排列存储之后,同一列的不同行对应的是相同频率、不同相位的回波信号(同频不同相)。如下中图,将接收到的回波信号和发射信号经过混频器,再经过一个低通滤波器就可以得到一个单一频率的正弦波信号,叫做差频信号,如下左图中IF signal。测速需要多个chrip;具有相同频率、不同初始相位的正弦信号经过FFT变换,会在相同频率处产生峰值,但峰值信号的相位不同,峰值的相位等于正弦波的初始相位。
地面点检测算法(附C++代码) 先根据先验信息滤除掉不可能是地面点的部分点云,再从剩下的候选地面点中随机选择3个点,根据三个点坐标计算平面的法线向量,将法线向量及已知点坐标代入点法式方程即可得拟合的平面方程表达式,将剩余候选地面点代入方程计算每个点到平面的距离,统计满足内点数量点的个数。循环迭代,取内点数量最多的一次迭代的平面方程模型为最优模型。另外雷达和地面通常是平行的,所以法向量和(0, 0, 1)的夹角是很小的,这个思路也可以解决。加入雷达最远地面线先验信息约束,地面线最远到不了100m,那么只对。:先过滤掉不可能是地面点的点云;
点云法向量和平面方程 文章目录一、平面方程表示法1.1 一般方程1.2 点法式1.3 一般方程的系数构成法向量1.4 结论二、拉格朗日乘数法三、法向量计算3.1 问题背景3.2 推导过程3.2.1 证明法向量是一个特征向量3.2.2 证明法向量是最小特征值对应的特征向量四、已知三点求平面方程表达式五、已知协方差矩阵计算法向量一、平面方程表示法1.1 一般方程Ax+By+Cz+D=0Ax+By+Cz+D=0Ax+By+Cz+D=01.2 点法式已知平面Π\PiΠ上的一个点M0=(x0,y0,z0)M_0=(x_0,y
用Python求最大公约数GCD(欧几里得算法) (x, y) = sorted([y, x % y], reverse=True) # 始终保证y是那个较小值,即x>yx, y = y, x % y # 最小值永远是取模之后的数,因此直接这句就可以if y == 0:return x。
坐标变换(二维、三维) 标量空间:只有标量;向量空间(Vector space):除了标量,还有向量;仿射空间(Affine space):除了标量、向量,还有点。向量空间没有位置的概念,所以不能表述几何物体,因此需要用到仿射空间;(对应齐次坐标系)欧几里得空间(Euclidean space):除了标量、向量,还有距离。仿射空间定义了点,包含了构建几何模型的必要元素,但是仿射空间没有定义长度的概念,欧几里得空间引入了这个概念。(对应欧几里得坐标系)只有平移和旋转,物体的形状不发生改变的变换。
用最小二乘法求解超定方程组 方程个数大于未知量个数的方程组,不存在解析解,寻求最小二乘解;方程个数等于未知量个数的方程组,存在唯一解析解;方程个数小于未知量个数的方程组,存在无穷多解,寻求一个基本解。要注意的是,定义中说的 “方程个数” 必须基于方程组中任意两个方程不等价的大前提,即不能存在类似于xy1x+y=1xy1和2x2y22x+2y=22x2y2的两个方程。也就是说,如果将方程组写成向量形式AXbAX=bAXb,要保证该方程组的系数矩阵AAA列满秩。
使用Python寻找列表中最大、小的前K个元素及其索引 因为只需要求前K个大、小元素,Python也有对应的max()/min()函数包,因此只需要循环使用K次max()/min()即可(为了方便,暂且称这种方法为“K次循环法”)。该方法原理简单,且适用性极好,有无重复元素的列表均适用;Python中有heapq.nlargest()和heapq.nsmallest()包方法,heapq包方法是基于堆的概念(放以后细讲)。若列表没有重复元素,该方法使用非常方便,一行代码即可;但若存在重复元素,该方法不能准确输出K个最大值对应的位置索引,因此该方法适用性一般。
Python中赋值、引用、深浅拷贝的区别和联系 Python中的赋值即引用,进行赋值时不会开辟新的内存空间,也不会产生一个新的变量单独存在,只是在原有数据块上打上了一个新标签。当数据块的任意一个标签发生变化时,本质是这个数据块发生变化,那么指向这个数据块的任意标签都会发生变化。浅拷贝常见的形式:切片a=a[:]、工厂函数a=list(a)、copy函数a=a.copy()或a=copy.copy(a)。浅拷贝只拷贝了最外层的对象,子对象只是被拷贝了元素的引用(即对象内的元素没有被拷贝);
蒙特卡洛原理及实例(附Matlab代码) 蒙特卡洛法不是一种优化算法,是基于大数定理的一种离散化的解题策略,尤其适用于问题的解析解难以计算或者甚至没有解析解时。(本文完整的pdf请关注“张张学算法”,并回复“011”获取~)
第3讲 -- 信噪比如何计算?如何产生固定信噪比的带噪信号? 信噪比,又叫SNRSNRSNR或S/NS/NS/N,是指一个电子系统中信号与噪声的比例,信噪比的计量单位通常是dBdBdBSNR=10lgPsPnSNR=10lgPnPsSNR=20lgVsVnSNR=20lgVnVs其中PsP_sPs和PnP_nPn代表信号和噪声的有效功率,VsV_sVs和VnV_nVn。
一文教你区分面向过程和面向对象编程 面向过程是绝大部分程序员的思想,它一种以过程为中心,依次把解决问题的步骤分析出来,并用函数封装好,后续在主函数中按照具体步骤调用相应的函数。面向过程编程的程序主体是函数,一个函数就是一个封装起来的模块,各个子步骤往往是通过各个函数来完成,因此面向过程是以行为(函数)为中心,始终关注的是怎么一步一步解决问题,从而实现函数的顺序执行。传统的面向过程的编程思想总结起来就八个字——自顶向下,逐步细化,它将要实现的功能描述为一个从开始到结束按部就班的连续的步骤(过程),依次逐步实现完成这些步骤。
【20221025】【数学基础】相关性和成比例关系的联系和区别 相关关系是客观现象存在的一种非确定的相互依存关系,即自变量的每一个取值,因变量由于受随机因素影响,与其所对应的数值是非确定性的。相关关系中的自变量和因变量没有严格的区别,可以互换。因果关系一定是相关关系,反之不一定成立。 相关的概念常见于概率统计学,相关性的大小可以用相关系数描述,常用的相关系数是皮尔逊Pearson相关系数。随机变量的相关性本质是由协方差决定的。当cov(X,Y)>0cov(X,Y)>0cov(X,Y)>0时,X和Y正相关。
【20220901】【Matlab】Matlab字符串和ASCII的相互转换 生成固定长度的列表,所以可以利用字符串和 ASCII 码的转换关系,先生成一个元素全为 32 的列表,然后再转为字符串即可。
【20220825】【数学基础】用最小二乘法求解超定方程组 方程个数大于未知量个数的方程组,不存在解析解,寻求最小二乘解;方程个数等于未知量个数的方程组,存在唯一解析解;方程个数小于未知量个数的方程组,存在无穷多解,寻求一个基本解。要注意的是,定义中说的 “方程个数” 必须基于方程组中任意两个方程不等价的大前提,即不能存在类似于x+y=1x+y=1x+y=1和2x+2y=22x+2y=22x+2y=2的两个方程。也就是说,如果将方程组写成向量形式AX=bAX=bAX=b,要保证该方程组的系数矩阵。......