circshift 函数详解
2016-04-20 18:41
483 查看
circshift函数是matlab中表示循环移位的函数,调用形式如下:
B= circshift(A,K,m);
输入参数:A表示待移位的矢量或矩阵;
K表示所移位数,可以是数字,也可以是二维数组,若是数字则可以和m协同作用来决定是行移位还是列 移位
m当K是数字时,m用来决定是行移位还是列移位。默认m是1,当m=1时表示列移位,当m=2时表示行移 位
circshift是一个循环移位函数,A和B分别表示同维度的矩阵或者矢量而K表示移位参数,可以是一个数字(可正可负),也可以是一个二维数组。下面用例子来表示cirshift 的用法。
首先假设A是一个3*3的数组:
若B=circshif(A,1)时,结果如下
也就是说,当K=1时,对每列元素进行循环移位,将1,4,7变成7,4,1;2,5,8变成8,2,5;3,6,9变成9,3,6也就是说每列元素逆循环移位,向前移动1位。
而当B=circshif(A,-1)时,结果如下:
即当K=-1时,对每列元素进行顺时针移位,也就是说直接后移。
综上:
当K>0时,每列元素逆时针(向前)移位,当K<0时,顺时针(向后)移位。
那如果K的值比A的行数或列数大呢???如果K的值大于行数或者列数,则移位的结果与K对行数或列数取余所得余数的结果相同。
那么怎么进行行移位呢??
本函数给出两种方法,一个是K值不变,直接令m=2则表示行移位。移位规律与列移位相同。
第二种方法也就是将K变成数组K=[0,k];k表示移位索引。
如果同时对矩阵进行行和列的移位则令K= [col,row],其中col表示列位移,row表示行位移。
B= circshift(A,K,m);
输入参数:A表示待移位的矢量或矩阵;
K表示所移位数,可以是数字,也可以是二维数组,若是数字则可以和m协同作用来决定是行移位还是列 移位
m当K是数字时,m用来决定是行移位还是列移位。默认m是1,当m=1时表示列移位,当m=2时表示行移 位
circshift是一个循环移位函数,A和B分别表示同维度的矩阵或者矢量而K表示移位参数,可以是一个数字(可正可负),也可以是一个二维数组。下面用例子来表示cirshift 的用法。
首先假设A是一个3*3的数组:
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
7 | 8 | 9 |
1 | 2 | 3 |
4 | 5 | 6 |
而当B=circshif(A,-1)时,结果如下:
4 | 5 | 6 |
7 | 8 | 9 |
1 | 2 | 3 |
综上:
当K>0时,每列元素逆时针(向前)移位,当K<0时,顺时针(向后)移位。
那如果K的值比A的行数或列数大呢???如果K的值大于行数或者列数,则移位的结果与K对行数或列数取余所得余数的结果相同。
那么怎么进行行移位呢??
本函数给出两种方法,一个是K值不变,直接令m=2则表示行移位。移位规律与列移位相同。
第二种方法也就是将K变成数组K=[0,k];k表示移位索引。
如果同时对矩阵进行行和列的移位则令K= [col,row],其中col表示列位移,row表示行位移。
相关文章推荐
- 了解HTML/HTML5中的download属性
- Linux中find常见用法示例
- eclipse使用教程系列二:从svn上检出项目
- 比特币在实际应用中遇到的两个问题
- BootStap学习笔记(1)
- nyoj 722 数独
- SpringMVC深度探险(四) —— SpringMVC核心配置文件详解
- 【学习】关于datatable组件的使用(一)
- linux网络编程基础(二)
- 【Redis数据库安装简介】
- ios开发时,在Xcode中添加多个targets进行版本控制
- php算法之快速排序
- SpringMVC深度探险(三) —— DispatcherServlet与初始化主线
- iOS获取App版本号
- HTTP协议详解
- FTP协议笔记
- winForm开发
- Mysql 5.7 报错 3534 错误
- 使用maven构建java项目
- eclipse使用教程系列一:配置环境变量和jdk以及集成tomcat_maven_svn图文详解