2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

くだすれFORTRAN(超初心者用)その6

624 :デフォルトの名無しさん:2014/09/26(金) 02:38:03.65 ID:jeu5JnPX.net
>>623
配列 a(7) = (/ 2,3,4,5,8,5,4 )/ があるとする。
最大値の位置を返す組み込み関数 maxloc に a を渡すと maxloc(a) は
1次元で1要素の配列 (/5/) を返す。

これを左辺で取るには integer :: m(1) が必要。スカラー変数では受け取れない。
m = maxloc( a ) !ok  ; integer :: n ; n = maxloc(a) !error

要するに do i = 1, maxloc(a) は、do i = 1, m(:) と同じ意味になり文法エラーが出る。
>>618 の質問は、do i = 1, m(1) に当たる事を実行したいので、
配列をスカラー値に戻す方法はないか?と質問している。

それに対する>>620の答えは、maxloc( a, dim = 1 ) を使えと言っている。
これは配列の要素を返す。普通は多次元配列に対して用いて、行や列の成分を
取りだすのに使う。

総レス数 1024
362 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★