MINLOC

変形組込み関数 (総称):配列中のすべての要素,配列中の要素の組,または配列の指定された次元中の要素の最小値の位置を返します。

形式

result = MINLOC (array [, dim] [, mask] [, kind])

array
(入力) 整数型または実数型の配列。

dim
(省略可能,入力) narray の次元数として,1 ~ n の範囲の値を持つスカラ整数。この引数は Fortran 95 の機能です。

mask
(省略可能,入力) array と形状適合する論理型配列。

kind
(省略可能,入力) スカラ整数初期値式。

結果

結果は基本整数型の配列です。kind が存在する場合,結果の種別パラメタは kind によって指定されたものになります。kind が存在しなければ,結果のの種別パラメタは基本整数型の種別パラメタになります。プロセッサーが結果の種別で結果の値を表現できない場合,結果は不定になります。

dim が省略された場合には,以下の規則が適用されます。

dim が宣言された場合,以下の規則が適用されます。

最小値を持つ要素が複数存在する場合,配列要素順序で最初に現れる要素の添字が返されます。array の大きさがゼロの場合,または,mask のすべての要素が .FALSE. である場合,結果の値は不定です。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

MAXLOCMAXVALMINVAL

MINLOC ((/3, 1, 4, 1/)) の値は,次元数 1 の配列の最小値が最初に現れる位置を表す添字である (2) です。

A が配列

	[  4    0   -3    2 ]
	[  3    1   -2    6 ]
	[ -1   -4    5   -5 ]

であるとします。

MINLOC (A, MASK=A .GT. -5) は,-5 よりも大きい最小値 (-4) の位置を表す添字である値 (3, 2) を持ちます。

MINLOC (A, DIM=1) の値は (3, 3, 1, 3) です。3 は列 1 の最小値 (-1) の位置を表す添字,3 は列 2 の最小値 (-4) の位置を表す添字です (以下同様)。

MINLOC (A, DIM=2) の値は (3, 3, 4) です。3 は行 1 の最小値 (-3) の位置を表す添字,3 は行 2 の最小値 (-2) の位置を表す添字です (以下同様)。

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

	INTEGER i, min1(1)
	INTEGER array(3, 3)
	INTEGER, ALLOCATABLE :: AR1(:)
	! 配列に値を代入します。
	array = RESHAPE((/-7, 1, -2, -9, 5, 0/),(/2, 3/))
	! 配列は  7 -2 5
	!         1 -9 0 です。
	i = SIZE(SHAPE(array))		! 配列の次元を得ます。
	ALLOCATE ( AR1(i))		! AR1 を配列の次元数に割り当てます。
	AR1 = MINLOC (array, MASK = array .GT. -5)
					! 配列で -5 より大きい
					! 最小の要素の場所 (添字)
					! を得ます。

	!
	! MASK = array .GT. -5 は,配列の対応する要素
	! が -5 より大きい時はその要素が .TRUE. で,
	! そうでない時はその要素が .FALSE. である配列
	! と同じ大きさで形状の配列選別を作成します。
	! この選別は,-5 より大きい最小値を持つ配列の
	! 要素の添字を MINLOC に返させるようにします。
	!
	! 配列は 7 -2 5 ;MASK=array .GT. -5 は F T T
	!        1 -9 0                         T F T
	! AR1 = MINLOC(array, MASK = array .GT. -5) は
	! (1, 2) を返します。これは,値 -2 を持つ要素の場所です。

	min1 = MINLOC((/-7, 2, -7, 5/))	! 1 を返します。
					! これは,最小値が最初に現れた場所です。
	END