ドキュメンテーション

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

circshift

説明

Y = circshift(A,K) は、K の分だけ配列 A の要素の位置を循環的にシフトします。K が整数の場合、circshift は、サイズが 1 に等しくない A の最初の次元に沿ってシフトします。K が整数ベクトルの場合、K の各要素は、A の対応する次元でのシフト量を示します。

メモ

K がスカラーである circshift(A,K) の既定の動作は、R2016b で変更されています。R2016a 以前のリリースの動作を保持するには、circshift(A,K,1) を使用します。この構文は、演算の対象の次元として 1 を指定します。

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

すべて折りたたむ

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

A = (1:10)'
A = 10×1

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10

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

Y = circshift(A,3)
Y = 10×1

     8
     9
    10
     1
     2
     3
     4
     5
     6
     7

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

文字の配列を作成し、circshift を使用して文字を 3 位置分シフトします。Y では文字の順序が異なります。

A = 'racecar';  
Y = circshift(A,3)
Y = 
'carrace'

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

A = [1 1 0 0; 1 1 0 0; 0 0 0 0; 0 0 0 0]
A = 4×4

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

circshift を使用して、A の各行を 1 位置分、右にシフトします。

Y = circshift(A,1,2)
Y = 4×4

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

A の要素を各次元で 1 位置分シフトします。1 のクラスターが行列の中央に来ます。

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

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

クラスターを元の位置に戻すには、負のシフト値を使用して、Y に対して circshift を使用します。行列 XA と同じになります。

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

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

入力引数

すべて折りたたむ

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

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

整数値スカラーまたは整数のベクトルとして指定するシフト量。

  • K を整数として指定し、dim を指定しない場合、circshift は、サイズが 1 に等しくない最初の次元に沿ってシフトします。正の K では次元の末尾の方向にシフトし、負の K では先頭の方向にシフトします。

  • K を整数のベクトルとして指定する場合、K の N 番目の要素が、A の N 次元でのシフト量を指定します。K の N 番目の要素が正の場合、A の値は N 次元の末尾の方向にシフトします。N 番目の要素が負の場合、値は先頭の方向にシフトします。

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

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

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

R2006a より前に導入