数组和关联数组 – Linux Shell 脚本

数组借助索引将多个独立的数据存储为一个集合。普通数组只能使用整数作为数组索引。关联数组可以使用字符串作为数组索引。 下面是一个普通数组和关联数组的示例: #!/bin/bash array_var=(apple grape banana); # 定义普通数组 echo ${array_var[0]}; # 取出索引为0的元素 echo ${array_var[*]}; # 取出所有元素 array_var[3]=peach; #… 阅读全文

字段分隔符 IFS – Linux Shell 脚本

内部字段分隔符(Internal Field Separator, IFS)定义一个定界符,默认是空格。 下面是一个示例: #!/bin/bash oldIFS=$IFS; IFS=":"; count=0; for item in $PATH; do count=$(( count + 1 )) printf "%s\t%s\n" $count $item; done IFS=$oldIFS; 程序运行结果如下: wm@WangubuntuConsole:~/shellScriptBlog$… 阅读全文

获取程序运行时间 – Linux Shell 脚本

下面的脚本可以获取一段程序的运行时间: #!/bin/bash start=$(date +%s) sleep 5; end=$(date +%s) take=$(( end - start )) echo Time taken to execute commands is ${take} seconds. 其中: date +%s获取当前的纪元时(Unix时间),即自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。 sleep… 阅读全文

Voronoi图路径规划 (许松清, 2005)

本文学习了以下文章中的方法: 许松清,吴海彬,林宜,高洪张,陈天炎. 基于Voronoi图法的移动机器人路径规划[J]. 中国工程机械学报,2005,(03):336-340. 在Voronoi路径规划代码下载本文代码。 维诺图 用X表示一个距离函数为d的空间。令K为一个指示集合,(P_k ),k∈K为空间X的一个非空子集的有序元组。对应于P_k 的R_k,称为沃洛诺伊元胞… 阅读全文

VGRAPH路径规划(Lozano-Perez and Wesley, 1979)

本文学习了以下文章中的方法: Lozano-Pérez T, Wesley M A. An algorithm for planning collision-free paths among polyhedral obstacles[J]. Communications of the ACM, 1979, 22(10): 560-570. 本文参考了以下项目代码(特别是地图数据、增长障碍物部分代码、线段是否相交检查部分代码),特表示感谢:… 阅读全文

A*算法

A*算法解决加权图的最短路径问题。 原理 从图的特定起始节点开始,A*旨在找到从起始节点到目标节点见具有最小代价的路径(最少行驶距离、最短时间等)。A*算法维护源自起始节点的路径树,并且一次一个地延伸这些路径直到满足其终止标准。 在A*算法主循环的每次迭代中,需要确定对哪条路径进行扩展,A*算法根据… 阅读全文

Dijkstra算法例子

在Dijkstra算法代码下载本文涉及到的代码。 程序代码 Dijkstra算法的程序如下: function [d, p] = dijkstra(adj, s, t) % 使用dijkstra求最短路径 % adj 输入 矩阵 邻接矩阵 % s 输入 整数 起点 % t 输入 整数 或 [] 终点 % d 输出 向量 路径长度,若t==[],则返回从起点到所有节点的路径长度 % p 输出 向量 或 元胞 路径,若t==[],则返回从起点到所有节点的路径(cell) nodes_num… 阅读全文

Dijkstra算法

Dijkstra算法使用了广度优先搜索解决赋权有向图(或无向图)的单源最短路径问题。 输入 该算法的输入包含了一个有权重的图G,以及G中的一个起点S,V是途中所有顶点的集合,E是图中所有顶点的集合。图中的边是两个顶点所形成的元素对,(u,v)表示顶点u到顶点v的边,w(u,v)表示这条边的权重。 输出 该算法能够在一个图中,找到从起点到任何其他顶点的最低权重路径(最短路径)。 流程 这个算法是通过为每个顶点v保留当前为… 阅读全文

在LaTeX环境下使用BibTeX进行文献引用(MiKTeX软件)

手动管理参考文献总是令人抓狂,参考文献的样式需要小心编排,还需要按照引用顺序对参考文献进行排序和编号,以致添加、删除或者修改引用文献后都需要进行大量的修改,耗费大量的时间和精力。 使用BibTeX进行文献管理可以有效地提高这项工作的效率,下面以MiKTeX软件为例进行说明。 使用BibTex的好处是: 自动调整参考文献样式。 在正文中直接对参考文献别称进行引用,不需要在正文中来回修改引用号。 自动按照引用顺… 阅读全文