matlab有很多自带的函数,可以实现很强大的功能。最近在做分析互联网拓扑的工作。目前互联网拓扑共有49451个AS。每个AS之间至少有4个链路。我所做的工作是分析AS之间的最短跳数。其实是很简单的工作。使用matlab两三个函数就可以搞定。问题在于如何把如此庞大的数据集输入进matlab。尝试了一下如果采用邻接矩阵的方式,5万个节点的邻接矩阵大小为4个G左右。电脑8G内存,根本无法导入。于是,需要采用稀疏矩阵的方式。那么什么是稀疏矩阵呢?稀疏矩阵是省略了矩阵的0元素后的矩阵,这样可以大大减少一个矩阵的存储空间。那么思路就是想办法吧邻接矩阵转化为稀疏矩阵。果然,转化完之后可以把内存大小从4G缩小到200M。多么犀利的一个比例。然后可以用的graphallshortestpaths去求最短路矩阵。注意转化稀疏矩阵的函数sparse的第四个第五个参数规定矩阵的行数和列数。因为graphallshortestpaths需要输入n*n的稀疏矩阵。而sparse有可能转化出一个n*m的矩阵。这一点需要注意。

2014.11.27—感恩节的话语与维特比算法

本因昨天发布的文章。结果打球忘记了,今天发布。 昨天是感恩节,首先抒情一下。 感谢命运,带给我挫折,也让我遇到了美好的你;感谢父母,对我多年的照顾和...

阅读全文

2014.11.27—Matlab编程小记

磕了一晚上瓜子,写了一个matlab仿真无线信道多径效应的程序。目前只是用到了遍历的算法。之后应该还要写一个用维特比算法的程序。 程序虽然不多,但是里面的...

阅读全文

2 条评论

欢迎留言

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据