matlab circshift函数@TOC
matlab circshift 函数
为了对矩阵进行FDTD电磁场更新(用到相邻节点的电磁场值)进行计算
circshif()
-
x1=circshift(A,k)
-
移位参数k的正负方向与图像坐标系的方向相同,大于0表示沿x轴向右或沿y轴下移,小于0表示沿x轴向左或沿y轴上移
-
B= circshift(A,K,m);
-
将 A中的元素进行平移 ,如果 是二维情况,k 为正整数,A 中的元素将循环右移 k 位;如果 k 为负整数,则将 A中的元素循环左移 |k| 位。
-
A为矩阵或者多维数组 是对每一行的元素进行作用
-
y = circshift(A,K,dim)
1.循环将 A 中的值沿维度 dim 平移 K 个位置。输入 K 和 dim 必须为标量。
2.A 可以是向量,矩阵,多维数组,k>0右移,k<0左移
- 将 A中的元素进行平移 ,如果 是二维情况,k 为正整数,A 中的元素将循环右移 k 位;如果 k 为负整数,则将 A中的元素循环左移 |k| 位。
- 如果是三维情况,就是一页一页沿着Z轴上下移动,matlab里a[i][j][k],表示的是第k页的第i行第j列
3.dim:沿其运算的维度,指定为正整数标量。通常,指定 dim = 1 以交换行,指定 dim = 2 以交换列,dim=3交换页。
三维情况
- k<0每一页向z减少的方向移动,第一页移动到了最后一页,
- k>0,每一页向z增加的方向移动,但是最后一页到了第一页
cat命令可以创建高维数组。
C=cat(dim,A1,A2,A3,A4……)
其中dim表示的是创建数组的维度,A1,A2,A3,A4表示的是各维度上的数组
可以通过赋值改变第3页第1行第2列的值