circshift 函数详解
circshift函數(shù)是matlab中表示循環(huán)移位的函數(shù),調(diào)用形式如下:
? ? B= circshift(A,K,m);
輸入?yún)?shù):A表示待移位的矢量或矩陣;
? K表示所移位數(shù),可以是數(shù)字,也可以是二維數(shù)組,若是數(shù)字則可以和m協(xié)同作用來決定是行移位還是列 ? ? ? ? ? ? ? ? ? ? 移位
? m當(dāng)K是數(shù)字時(shí),m用來決定是行移位還是列移位。默認(rèn)m是1,當(dāng)m=1時(shí)表示列移位,當(dāng)m=2時(shí)表示行移 ? ? ? ? ? ? ? ? ? ?位
circshift是一個(gè)循環(huán)移位函數(shù),A和B分別表示同維度的矩陣或者矢量而K表示移位參數(shù),可以是一個(gè)數(shù)字(可正可負(fù)),也可以是一個(gè)二維數(shù)組。下面用例子來表示cirshift 的用法。
首先假設(shè)A是一個(gè)3*3的數(shù)組:
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
| 7 | 8 | 9 |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
而當(dāng)B=circshif(A,-1)時(shí),結(jié)果如下:
| 4 | 5 | 6 |
| 7 | 8 | 9 |
| 1 | 2 | 3 |
綜上:
當(dāng)K>0時(shí),每列元素逆時(shí)針(向前)移位,當(dāng)K<0時(shí),順時(shí)針(向后)移位。
那如果K的值比A的行數(shù)或列數(shù)大呢???如果K的值大于行數(shù)或者列數(shù),則移位的結(jié)果與K對(duì)行數(shù)或列數(shù)取余所得余數(shù)的結(jié)果相同。
那么怎么進(jìn)行行移位呢??
本函數(shù)給出兩種方法,一個(gè)是K值不變,直接令m=2則表示行移位。移位規(guī)律與列移位相同。
第二種方法也就是將K變成數(shù)組K=[0,k];k表示移位索引。
如果同時(shí)對(duì)矩陣進(jìn)行行和列的移位則令K= [col,row],其中col表示列位移,row表示行位移。
總結(jié)
以上是生活随笔為你收集整理的circshift 函数详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冲啊电竞er,纵享游戏人生,你还需要一副
- 下一篇: c++画多边形_如何画出超漂亮的极光绘画