稀疏矩阵求最小或最大的K个特征值及其特征向量
来源:互联网 发布:怎么看网络是公网ip 编辑:程序博客网 时间:2024/04/29 02:59
本人挤牙膏试的文笔,没有习惯写博客,为了方便以后遇到这个问题不要重头再来,也为了有可能能给其他小伙伴一些建议,还是决定整理整理思路,努力写篇大家看得懂的笔记吧。
由于我要处理的问题是求一个5000*5000维度矩阵的最小特征向量,我的矩阵有个特点,虽然维度大,但是没行只有4个非零值,很稀的矩阵,有点像食堂的免费汤里的蛋花,OpenCV有个函数
CVAPI(void) cvEigenVV( CvArr* mat, CvArr* evects, CvArr* evals,double eps CV_DEFAULT(0), int lowindex CV_DEFAULT(-1), int highindex CV_DEFAULT(-1))是可以求对称矩阵的特征值和特征向量,它不争气的求了将近一个小时,还是没有给出结果。为了这一个特征向量,费这么大劲,逼着我去找解决的方法。Matlab有个函数eigs(),可以求最小的k个特征值及其对应的特征向量,配上sparse矩阵,这个问题大约只用到几秒,于是想查查,matlab到底用了什么算法,怎么能这么给力呢。matlab很直白的告诉我们说,我用了Arnoid算法,还有个包,ARPACK包。
于是,转战ARPACK,ARPACK是fortran语言写的,我是用VS开发,这显然又给我出难题了,google搜了很久,发现有个哥们直接开悬赏帖,让我有些没有底气了,难道真的这么难搞定吗?没有办法,工作需要,硬着头皮搞。
这个哥们的博客,http://www.cnblogs.com/hellraider/archive/2012/09/29/2707231.html,很感谢他,整理的很详细。我是按着这个弄,给他弄出来的。中间遇到一些问题,提出来注意一下:
1.第6部,打包的时候, make lib没有反应。于是,干脆找到make.exe,点了点,发现这个make.exe不给力,说缺少一个msys-iconv-2.dll文件,确实不知道从哪里下,好多网页都是坑人的,根本没有。也不知道当时是那根筋抽了,忽然怀疑是不是漏装了什么,于是跑到MinGA Installation Manager里面看看,有没有跟这个名字像的软件是没有装的。找到一个mingw32-libiconv,于是我把它装上了,反正装又不要钱。奇迹版的是,这个dll文件就生出来了。make有反应了,不再那么静默了。
2.有.o文件了,但是SRC跳过了,原因是我用patch的SRC完全覆盖了原来的SRC,造成没有makefile了。这样做是不对的,patch只是补丁嘛,就好象衣服和补丁。需要有补丁的时候,才用得着。不能全换成补丁。正确的方法是把Patch的SRC文件全考出来,替换原来SRC相同文件就行了。那哥们的博客说的蛮清楚的,我是理解有问题。
3. 提示second.f编译出错,很奇葩,我是把那5行复制进去的,顶格的,我也不知道为什么,空了一个TAb建就行了。
按着博客的方法,可以生城.dll文件和lib文件了,后面也给出了调用的方法。按着这个方法来,后面就有理想的结果了。
- 稀疏矩阵求最小或最大的K个特征值及其特征向量
- scipy.sparse求稀疏矩阵前k个特征值
- OpenCV求矩阵的特征值和特征向量
- 求hession矩阵的特征值和特征向量
- matlab求矩阵前k小的特征值和对应的特征向量
- opencv 求矩阵的特征向量矩阵和特征值
- opencv 求矩阵的特征向量矩阵和特征值
- 矩阵及其变换、特征值与特征向量的物理意义
- 矩阵及其变换、特征值与特征向量的物理意义
- 矩阵及其变换、特征值与特征向量的物理意义
- 矩阵的特征值和特征向量及其物理意义
- 幂法求矩阵的最大特征值和对应特征向量
- 利用OpenCV求矩阵的特征值和特征向量
- 雅克比求矩阵的特征值特征向量函数改进
- 乘幂法求矩阵的特征值及特征向量
- matlab 稀疏矩阵求 特征值
- 矩阵的特征值与特征向量
- 矩阵的特征值和特征向量
- (一)杂记
- 对OAuth2认证的小结【Android】
- 关于f_mass_storage.c的文章
- flask flash UnicodeDecodeError 解决方案
- 3Sum
- 稀疏矩阵求最小或最大的K个特征值及其特征向量
- 系列总结博客(1)——SQL
- HttpURLConnection getHeaderFields().get("Content-Type") 获得网页编码问题
- Ubuntu上安装jdk
- USB基础书籍资料推荐
- Win7分享WIFI的方法
- UISwitch用法-以及-自定义UISwitch控件
- 利用opencv给视频截图
- C++程序设计之四书五经—C++书籍推荐