MATLAB シフト配列
Ammar Ali
2023年1月30日
このチュートリアルでは、MATLAB で circshift()
関数を使用して配列を手動でシフトする方法を紹介します。
MATLAB の circshift()
関数を使用して配列をシフトする
配列を特定の桁数だけ左または右にシフトする場合は、circshift()
関数を使用できます。この関数は、指定された配列を特定の桁数だけ循環的にシフトします。この関数の最初の引数はシフトする配列であり、2 番目の引数はシフトする場所の数です。これは列の数または行の数のいずれかです。2 番目の引数が負の数の場合、配列は左にシフターになり、それ以外の場合は右になります。たとえば、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
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
を使用して配列の終わりを指定しています。行列がある場合は、列をシフトすることもできます。次に、配列を 1 桁左にシフトし、配列の最後に新しい要素を追加して、最初の要素を削除しましょう。以下のコードを参照してください。
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