最近要测试下数据,一个小问题明明觉得应该是正确的,哪知道老错误,今天参加summer school的时候和wdai讨论了下,发现应该是matlab和c++将
矩阵拉成向量的格式不一样,测试如下果然不一样,matlab是按照列展开的。opencv的cvmat是按照行展开的,matlab测试如下:
>> a = rand(4,3)
a =
0.6787 0.6555 0.2769
0.7577 0.1712 0.0462
0.7431 0.7060 0.0971
0.3922 0.0318 0.8235
>> b = reshape(a,[12 1])
b =
0.6787
0.7577
0.7431
0.3922
0.6555
0.1712
0.7060
0.0318
0.2769
0.0462
0.0971
0.8235
显然这个事按照列展开的。
如果想按行展开,代码如下:
c =
0.6787
0.6555
0.2769
0.7577