MATLAB 移位数组
Ammar Ali
2023年1月30日
本教程将介绍如何手动移动数组并使用 MATLAB 中的 circshift()
函数。
使用 MATLAB 中的 circshift()
函数移动数组
如果要将数组向左或向右移动特定数量的位置,可以使用 circshift()
函数,该函数将给定数组循环移动特定数量的位置。此函数的第一个参数是你要移动的数组,第二个是你要移动的位置数,可以是列数或行数。如果第二个参数是负数,则数组将向左移动,否则向右移动。例如,让我们定义一个包含 1 到 10 个整数的数组,并使用 circshift()
函数将其左移。请参考下面的代码。
myArray = 1:10
shifted_array = circshift(myArray,[1,-3])
输出:
myArray =
1 2 3 4 5 6 7 8 9 10
shifted_array =
4 5 6 7 8 9 10 1 2 3
第二个参数指定我们要将上述代码中的第一行左移三位。如果你有矩阵,你也可以移动列。
使用 MATLAB 中的数组索引移动数组
如果要将数组向左或向右移动特定数量的位置和数组中某处的新元素,则可以使用数组索引。例如,让我们定义一个包含 1 到 10 个整数的数组,并使用数组索引将其左移。请参考下面的代码。
myArray = 1:10
shifted_array = [myArray(4:end) myArray(1:3)]
输出:
myArray =
1 2 3 4 5 6 7 8 9 10
shifted_array =
4 5 6 7 8 9 10 1 2 3
在上面的代码中,end
用于指定数组的结尾。如果你有矩阵,你也可以移动列。现在,让我们将数组向左移动一个位置,并在数组末尾添加一个新元素并删除第一个元素。请参考下面的代码。
myArray = 1:10
element = 11
shifted_array = [myArray(2:end) element]
输出:
myArray =
1 2 3 4 5 6 7 8 9 10
element =
11
shifted_array =
2 3 4 5 6 7 8 9 10 11
在上面的代码中,end
用于指定数组的结尾。
作者: Ammar Ali