这边有个matlab的代码,需要转成C++的,所以要弄一个矩阵运算库。
初期选型是eigen,毕竟都说好,小巧,轻量,我也喜欢。但是我高估了我的数学水平,碰到一个倒数条件数rcond ,发现eigen里面虽然有这个,但是是三角矩阵的。具体我也看得一脸懵逼,本着快速开发的原则,搜了一下发现了这个库。网上的教程呢,说好也不好。反正是不全,幸好我下载了它的官方文档,里面有Matlab到Armadillo的对照表,然后呢.
最后范的一个错误就是用A.ones()
指望返回一个全1矩阵,结果是它自己赋值为1了…… 正确的用法是ones<mat>(A.n_rows,A.n_cols)
;还有就是使用运算符后,返回的是表达式,所以在已知结果形式的情况下用Mat Row Col
来表达,就可以知道结果,直接使用auto是返回的表达式。
贴一段对照表,有需要的自行下载pdf。这个本来需要梯子才能下载,我上传到百度云了。失效的话请联系我
链接:https://pan.baidu.com/s/1Nh4sPKzI2zIY5b2qo_II0Q
提取码:yjzj
------------------------更新-----------------------
然后官方网站也是需要FQ访问的
http://arma.sourceforge.net/d...
然后我在和matlab对照的时候非常痛苦,因为看不到它的值,只能save下来对比……查了下,可以通过配置nativs文件,自动的查看值。
需要添加nativs文件
如何添加nativs文件
其实就是把它添加到项目,而不是添加到属性。OK了,可以愉快的调试了
返回唯一行的实现,库本身没有,只能自己实现
https://stackoverflow.com/que...
最终因为没有griddata函数暂时搁置,看到一个函数是interp2( X, Y, Z, XI, YI, ZI ) 但是它要求得Z 是一个矩阵,也就是对应X,Y的网格,总所周知我们的点云又不是均匀分布的,哪儿来的网格,所以只能是先放弃了,据说OPENCV和PCL是有相应的解决方案的,不过那样的话就太复杂了,也不适合用这个库,还不如直接用PCL的好。算是一次不太成功的尝试吧
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。