| RESHAPE |
RESHAPE| 書式 | RESHAPE(SOURCE,SHAPE[,PAD][,ORDER]) | ||||||||
| 機能 |
与えられた配列SOURCEの要素から、指定された形状の配列を作成する。 結果の要素を置換した添字順序ORDER(1),…,ORDER(n)で並べ替えたものは、 SOURCEの要素を通常の配列要素順序で並べ、足りなければPADの要素を 配列要素順序で続け、更に足りなければPADの要素を配列要素順序で 必要な回数だけ繰り返したものと等しい。 | ||||||||
| 引数 |
| ||||||||
| 戻り値 |
型、種別型パラメタは引数SOURCEと同じで形状は引数SHAPEと同じ配列である。
結果の大きさはSHAPEの要素の値の積とする。 |
サンプルプログラム1
┌────┬────┬────┬────┬────┬────┐
vect│ 10 │ 20 │ 30 │ 40 │ 50 │ 60 │
└────┴────┴────┴────┴────┴────┘
┌────┬────┐
shp │ 2 │ 3 │
└────┴────┘
┌────┬────┬────┐
rshp│ 10 │ 30 │ 50 │
│ 20 │ 40 │ 60 │
└────┴────┴────┘
INTEGER,DIMENSION(6) :: vect
INTEGER,DIMENSION(2) :: shp
INTEGER,DIMENSION(2,3) :: rshp
vect=(/10, 20, 30, 40, 50, 60/)
shp =(/2, 3/)
rshp=RESHAPE(vect,shp)
WRITE(*,'(3I4)') (rshp(i,:),i=1,2)
| 実行例 |
サンプルプログラム2
+----+----+----+----+----+----+
vect | 10 | 20 | 30 | 40 | 50 | 60 |
+----+----+----+----+----+----+
+----+----+ +----+----+ +----+----+
shp | 2 | 4 | pad | 22 | 44 | ord | 2 | 1 |
+----+----+ +----+----+ +----+----+
+----+----+----+----+
rshp | 10 | 20 | 30 | 40 |
| 50 | 60 | 22 | 44 |
+----+----+----+----+
INTEGER,DIMENSION(6) :: vect
INTEGER,DIMENSION(2) :: shp, pad, ord
INTEGER,DIMENSION(2,4) :: rshp
vect=(/10, 20, 30, 40, 50, 60/)
shp =(/20, 40/); pad=(/22, 44/); ord=(/2, 1/)
rshp=RESHAPE(vect,shp,pad,ord)
WRITE(*,'(4I4)') (rshp(i,:),i=1,2)
| 実行例 |