ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

circshift

circshift(A,K) の既定の動作 (K はスカラー) は、将来のリリースで変更されます。新しい既定の動作は、サイズが 1 でない A の最初の配列の次元に沿って動作するようになります。現在の動作を維持するには、circshift(A,[K 0]) を使用します。

構文

  • Y = circshift(A,K)
  • Y = circshift(A,K,dim)

説明

Y = circshift(A,K) は、K の分だけ配列 A の要素の位置を循環的にシフトします。K を整数として指定すると A の行をシフトし、整数のベクトルとして指定すると各次元のシフトの量を示します。

Y = circshift(A,K,dim) は、次元 dim に沿って、K の分だけ配列 A の値の位置を循環的にシフトします。入力 Kdim はスカラーでなければなりません。

すべて折りたたむ

数値列ベクトルを作成します。

A = (1:10)'
A =

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10

circshift を使用して要素を 3 つの位置分シフトします。

Y = circshift(A,3)
Y =

     8
     9
    10
     1
     2
     3
     4
     5
     6
     7

結果の Y には A と同じ要素がありますが、順番が異なります。

文字の配列を作成します。

A = 'racecar'
A =

racecar

circshift を使用して、文字を 2 番目の次元で 3 つの位置分シフトします。

Y = circshift(A,3,2)
Y =

carrace

Y では文字の順序が異なります。

左上に 1 のクラスターがある数値配列を作成します。

A = [1 1 0 0; 1 1 0 0; 0 0 0 0; 0 0 0 0]
A =

     1     1     0     0
     1     1     0     0
     0     0     0     0
     0     0     0     0

circshift を使用して、A の要素を各次元で 1 つの位置分シフトします。

Y = circshift(A,[1 1])
Y =

     0     0     0     0
     0     1     1     0
     0     1     1     0
     0     0     0     0

1 のクラスターが行列の中央に来ます。

クラスターを元の位置に戻すには、負のシフト値を使用して、Y に対して circshift を使用します。

X = circshift(Y,[-1 -1])
X =

     1     1     0     0
     1     1     0     0
     0     0     0     0
     0     0     0     0

行列 XA と同じになります。

入力引数

すべて折りたたむ

入力配列。ベクトル、行列または多次元配列として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | struct | table | cell
複素数のサポート: はい

整数値スカラーまたは整数のベクトルとして指定するシフト量。シフト量が A の対応する次元の長さより大きい場合、シフトは循環して折り返し、その次元の最初に戻ります。たとえば、3 要素のベクトルを +3 の位置分シフトすると、要素は元の位置に戻ります。

  • K を整数として指定し、dim を指定しない場合、circshiftA の行を下方 (正の整数) または上方 (負の整数) にシフトします。

  • K を整数のベクトルとして指定する場合、それぞれの要素が A の N 番目の次元のシフト量を指定します。K の N 番目の要素が正の場合、A の値は N 次元の最後 (正の整数) または最初 (負の整数) に向かってシフトされます。

動作する対象の次元。正の整数のスカラーとして指定します。値が指定されていない場合、既定値は dim = 1 です。dim を指定する場合、K は整数のスカラーでなければなりません。行を交換するには dim = 1 を指定し、列を交換するには dim = 2 を指定する、というようになります。

R2006a より前に導入

この情報は役に立ちましたか?