RESHAPE |
書式 | RESHAPE(SOURCE,SHAPE[,PAD][,ORDER]) | ||||||||
機能 |
与えられた配列SOURCEの要素から、指定された形状の配列を作成する。 結果の要素を置換した添字順序ORDER(1),…,ORDER(n)で並べ替えたものは、 SOURCEの要素を通常の配列要素順序で並べ、足りなければPADの要素を 配列要素順序で続け、更に足りなければPADの要素を配列要素順序で 必要な回数だけ繰り返したものと等しい。 | ||||||||
引数 |
| ||||||||
戻り値 |
型、種別型パラメタは引数SOURCEと同じで形状は引数SHAPEと同じ配列である。
結果の大きさはSHAPEの要素の値の積とする。 |
┌────┬────┬────┬────┬────┬────┐ 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)
実行例 |
+----+----+----+----+----+----+ 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)
実行例 |