Matlab 的reshape函数
2016-04-29 00:32
211 查看
看Matlab的help文档讲得不是清楚。
先给上一段代码:
>>a=[123;456;789;101112];
>>b=reshape(a,2,6);
这段代码的结果是这样的:
>>a
123
456
789
101112
>>b
172839
410511612
对于b=reshape(a,m,n);
其中的规律是这样的,先把矩阵a按列拆分,然后拼接成一个大小为m*n的向量。然后对这个向量每隔m间隔取一个元素组成一个向量b_i,之后的向量b_i+1也是这样生成,只不过第一个元素往下移一位。这样做完之后得到m个大小为n的行向量,将这些行向量拼接即可得到矩阵b。
后记:毕业设计中用到一个向量变换,一开始比较纠结,用循环实现的。迭代1000多次要用到2秒。后来用reshape函数,总共才用了0.03秒,对于我这个深度强迫症患者来说,这两秒时间我还是看得比较宝贵的,哈哈。
以后写matlab要引以为鉴,尽量少用for循环,多用矩阵或者向量的方式来处理。
先给上一段代码:
>>a=[123;456;789;101112];
>>b=reshape(a,2,6);
这段代码的结果是这样的:
>>a
123
456
789
101112
>>b
172839
410511612
对于b=reshape(a,m,n);
其中的规律是这样的,先把矩阵a按列拆分,然后拼接成一个大小为m*n的向量。然后对这个向量每隔m间隔取一个元素组成一个向量b_i,之后的向量b_i+1也是这样生成,只不过第一个元素往下移一位。这样做完之后得到m个大小为n的行向量,将这些行向量拼接即可得到矩阵b。
后记:毕业设计中用到一个向量变换,一开始比较纠结,用循环实现的。迭代1000多次要用到2秒。后来用reshape函数,总共才用了0.03秒,对于我这个深度强迫症患者来说,这两秒时间我还是看得比较宝贵的,哈哈。
以后写matlab要引以为鉴,尽量少用for循环,多用矩阵或者向量的方式来处理。
相关文章推荐
- Matlab生成M序列的伪随机码
- matlab画图函数plot
- matlab曲线拟合
- 在Matlab中调用ZXing的代码生成QR二维码
- Matlab调用ZXing的详细步骤——二维码生成
- MATLAB7.0在window7下的安装
- Matlab变量及其含义
- Matlab----画彩图
- MATLAB 与python reshape 比较
- 嵌套乘法求函数值(Matlab)
- 二分法求方程的根(Matlab)
- 均匀量化(Matlab)
- KNN算法中常用的距离计算公式
- Mac OS环境下的libsvm在Matlab中安装
- 分治思想 - 二分搜索技术 - MATLAB代码 list是数据集合,x是要查找的数据。
- matlab 可视化(specifier)
- 输出全排列问题,基于递归思想,MATLAB代码。
- matlab——corrcoef函数的使用
- Matlab显示图像时函数imge和imshow的区别
- matlab 实用程序片段