EOSHIFT(ARRAY, SHIFT, BOUNDARY, DIM)

目的

配列の所定の次元に沿ったすべてのベクトルのエレメントをシフトします。 シフトは end-off です。つまり、一方の端をシフトオフされたエレメントは失われ、 境界エレメントのコピーはもう一方の端でシフトインされます。

クラス

変換関数

引き数の型と属性

ARRAY
任意の型の配列です。

SHIFT
ランク 1 を持つ ARRAY の場合は、整数型のスカラーです。 そうでない場合は、スカラー整数またはランク rank(ARRAY)-1 の 整数式です。

BOUNDARY (オプション)
ARRAY と同じ型および型付きパラメーターを持ちます。 ARRAY がランク 1 である場合、BOUNDARY はスカラーでなければなりません。 そうでない場合、BOUNDARY はスカラーであるか、ランク rank(ARRAY)-1 の式で、 形状 (d1, d2..., dDIM-1, dDIM+1..., dn) です。

DIM (オプション)
1 <= DIM <= rank(ARRAY) の 範囲内の整数スカラーです。

結果の値

結果は ARRAY と同じ形状とデータ型を持つ配列になります。

SHIFT の絶対値は、シフトの量を決定します。 SHIFT の符号は、シフトの方向を決定します。

正の SHIFT
ベクトルの個々のエレメントをベクトルの先頭に向かって移動します。 エレメントがベクトルの先頭を過ぎた場合は、その値の代わりに、 ベクトルの終わりにある BOUNDARY の対応する値が入ります。

負の SHIFT
ベクトルの個々のエレメントをベクトルの終わりに向かって移動します。 エレメントがベクトルの終わりを過ぎた場合は、その値の代わりに、 ベクトルの初めにある BOUNDARY の対応する値が入ります。

ゼロ SHIFT
シフトを行いません。 ベクトルの値は変更されません。

結果の値

BOUNDARY がスカラー値である場合は、この値はすべてのシフト値で使用されます。

BOUNDARY が値の配列である場合は、添え字を持つ (s1, s2, ..., s(DIM-1), s(DIM+1), ..., sn) を持つ BOUNDARY の 配列エレメントの値がその次元について適用されます。

BOUNDARY が指定されないと、以下のデフォルト値が使用されます。 どれが使用されるかは、ARRAY のデータ型によって決まります。

文字
' ' (ブランク 1 つ)

論理

整数
0

実数
0.0

複素数
(0.0, 0.0)

! A is | 1.1 4.4 7.7 |, SHIFT is
S=(/0, -1, 1/),
!      | 2.2 5.5 8.8 |
!      | 3.3 6.6 9.9 |
! and BOUNDARY is the array B=(/-0.1, -0.2, -0.3/).
 
! Leave the first column alone, shift the second
! column down one, and shift the third column up one.
RES = EOSHIFT (A, SHIFT = S, BOUNDARY = B, DIM = 1)
! The result is | 1.1 -0.2  8.8 |
!               | 2.2  4.4  9.9 |
!               | 3.3  5.5 -0.3 |
 
! Do the same shifts as before, but on the
! rows instead of the columns.
RES = EOSHIFT (A, SHIFT = S, BOUNDARY = B, DIM = 2)
! The result is |  1.1  4.4  7.7 |
!               | -0.2  2.2  5.5 |
!               |  6.6  9.9 -0.3 |
IBM Copyright 2003