circshift 函数详解
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的數組:
| 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表示行位移。
總結
以上是生活随笔為你收集整理的circshift 函数详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冲啊电竞er,纵享游戏人生,你还需要一副
- 下一篇: c++画多边形_如何画出超漂亮的极光绘画