RESHAPE

変形組込み関数 (総称):引数配列から異なる形状の配列を作成します。

形式

result = RESHAPE (source, shape [, pad] [, order] )

source
(入力) 任意のデータ型の配列。この配列は,結果配列の要素を提供します。大きさは,pad が省略されているか大きさがゼロである場合,PRODUCT(shape) 以上でなくてはなりません。

shape
(入力) 次元数 1 で 7 個までの要素を含む整数配列。これは結果配列の形状を定義します。大きさは正でなくてはならず,その要素は負の値を含んでいてはなりません。

pad
(省略可能,入力) source と同じ型と種別パラメタを持つ配列。これは,結果配列が source よりも大きい場合に,余った値を充填するために使用されます。

order
(省略可能,入力) shape と同じ形状を持つ整数配列。その要素は,shape の大きさを n として,(1,2,...,n) の値の順列でなくてはなりません。order が省略された場合,(1,2,...,n) が使用されます。

結果

結果は source と同じ型と種別パラメタを持つ,shape の形状の配列です。結果の大きさは,shape 要素の値の積です。

結果配列中では,source の配列要素が,order によって指定された次元の順序で格納されています。order が省略された場合,配列要素は通常の配列要素順序で格納されます。

source 配列要素の後には,(必要ならば) pad 配列要素が配列要素順序で充填されます。必要ならば,結果配列のすべての要素が値を持つまで,pad のコピーが追加されていきます。

標準 Fortran 配列要素順では,第 1 次元が最も早く変化します。たとえば,2 次元配列の要素順は (1,1), (2,1), (3,1), ... というふうになります。各次元が 2 つの要素をもつ 3 次元配列では,配列要素順は (1,1,1), (2, 1, 1), (1, 2, 1), (2, 2, 1), (1, 1, 2), (2, 1, 2), (1, 2, 2), (2, 2, 2), ... というふうになります。

Fortran から C 手続に配列を渡す前に,Fortran 配列を C 配列順に一致するように並べ替えるために,RESHAPE を使うことができます。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

PACKSHAPETRANSPOSE

RESHAPE ((/3, 4, 5, 6, 7, 8/), (/2, 3/)) の値は

	[ 3  5  7 ]
	[ 4  6  8 ]

です。

RESHAPE ((/3, 4, 5, 6, 7, 8/), (/2, 4/), (/1, 1/), (/2, 1/)) の値は

	[ 3  4  5  6 ]
	[ 7  8  1  1 ]

です。

以下に他の例を示します。

	INTEGER AR1( 2, 5)
	REAL F(5,3,8)
	REAL C(8,3,5)
	AR1 = RESHAPE((/1,2,3,4,5,6/),(/2,5/),(/0,0/),(/2,1/))
	! 1 2 3 4 5
	! 6 0 0 0 0 を返します。
	!
	! Fortran 配列順を C 配列順に変更します。
	C = RESHAPE(F, (/8,3,5/), ORDER = (/3, 2, 1/))
	END