circshift函数应用介绍(自用,来源于GPT)

`circshift` 是 MATLAB 中的一个函数,作用是对数组进行循环移位。具体来说,它会把数组中的元素按照指定的位数进行平移,当移位超出数组边界时,溢出的元素会从另一端循环填补回来。

1. 语法:

**`B = circshift(A, k)`**
   - 对数组 `A` 的所有维度进行循环移位,`k` 是移位的位数。正数表示向下或向右移位,负数表示向上或向左移位。

2. **`B = circshift(A, [k1, k2, ...])`**
   - 对数组 `A` 的各个维度分别移位,`k1` 是沿第一维的移位量,`k2` 是沿第二维的移位量,依此类推。

2. 示例:

1. **对向量移位:**
   ```matlab
   A = [1, 2, 3, 4, 5];
   B = circshift(A, 2);
   ```
   **结果:**
   ```
   B = [4, 5, 1, 2, 3]
   ```
   - 向右移位2个位置,原本在最后的 `4, 5` 被移动到前面,数组其余元素循环向右。

2. **对矩阵移位:**
   ```matlab
   A = [1 2 3; 4 5 6; 7 8 9];
   B = circshift(A, [1, 0]);
   ```
   **结果:**
   ```
   B = 
       7     8     9
       1     2     3
       4     5     6
   ```
   - 矩阵沿第一维度(行)向下移位1个位置,最下面一行被移动到顶部。

3. **对多维矩阵移位:**
   ```matlab
   A = [1 2 3; 4 5 6; 7 8 9];
   B = circshift(A, [0, -1]);
   ```
   **结果:**
   ```
   B =
       2     3     1
       5     6     4
       8     9     7
   ```
   - 矩阵沿第二维度(列)向左移位1个位置,最左边的一列被移动到最右边。

3. 应用场景:

- `circshift` 常用于信号处理、数组旋转等场景中。例如,在信号处理中,用于模拟信号的延迟;在数据分析中,用于循环平移数据。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值