matlab 矩阵reshape都是按照列展开的,opencv的cvmat是按照行展开的
来源:互联网 发布:网络运营课程 编辑:程序博客网 时间:2024/04/28 23:27
最近要测试下数据,一个小问题明明觉得应该是正确的,哪知道老错误,今天参加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
0.1712
0.0462
0.7431
0.7060
0.0971
0.3922
0.0318
0.8235
将向量变成矩阵也是按列。代码如下:
b1 =
0.6787 0.6555 0.2769
0.7577 0.1712 0.0462
0.7431 0.7060 0.0971
0.3922 0.0318 0.8235
>> c1 = reshape(c,[4 3])
c1 =
0.6787 0.1712 0.0971
0.6555 0.0462 0.3922
0.2769 0.7431 0.0318
0.7577 0.7060 0.8235
下面flag1 = 1,证明向量是按列成矩阵的
flag1 =
1
下面flag2 = 0,也证明向量是按列成矩阵的
>> flag2 = isequal(a,c1)
flag2 =
0
下面是将矩阵按行展开的之后所得向量,再按照行变成矩阵代码
c2 =
0.6787 0.6555 0.2769
0.7577 0.1712 0.0462
0.7431 0.7060 0.0971
0.3922 0.0318 0.8235
% flag3=1证明按照行变成矩阵成功了
flag3 =
1
有些非常非常小的问题也得用程序去测试,程序一般是不会错的,要相信。要仔细
- matlab 矩阵reshape都是按照列展开的,opencv的cvmat是按照行展开的
- matlab中将矩阵按照行打乱顺序的一个例子
- 行列式的按行/列展开
- expand--符号矩阵的展开
- NN类型的矩阵 如果列和行要交换可以按照对角线来交换
- matlab的reshape和opencv的reshape异同
- easyui 的行展开
- 对于张量展开矩阵的理解
- zz:基于 OpenCV 的矩阵运算 (CvMat)
- 【OpenCV矩阵结构体】CvMat的操作
- memset是按照字节填充的
- SEO是展开网络营销的核心
- 设置ExpandableListView 默认是展开的
- 康托展开是怎么来的?
- matlab的reshape使用
- Matlab 的reshape函数
- Matlab 的reshape函数
- matlab的reshape函数
- atoi()函数的实现
- Spring的JDBCTemplate详解
- C语言里的puts()函数怎么用
- 那些天我们经历的实时错误—Student-Mis小结
- c++面试1
- matlab 矩阵reshape都是按照列展开的,opencv的cvmat是按照行展开的
- isalpha islower toupper
- C/C++/C#面试题精选(3)
- hdu 4000 树状数组
- 数组中只出现一次的数字
- 到处可见的“google提供的广告”是什么意思?
- SAP的视图
- SQL学习之五
- C/C++/C#面试题精选(2)