- くだすれFORTRAN(超初心者用)その6
373 :デフォルトの名無しさん[sage]:2014/04/15(火) 19:04:08.61 ID:2Visq3rw - b(:,:,t)=a(i,j) だと駄目。
>>370 のとおりじゃないと。 部分配列を指定するのにコロンを使う。 たとえば配列 v の第2成分から第10成分までなら v(2:10)。 コロンの両脇に数字がないのは、成分あるだけ全部という意味。
| - くだすれFORTRAN(超初心者用)その6
376 :デフォルトの名無しさん[sage]:2014/04/15(火) 22:23:43.96 ID:2Visq3rw - >>375
373 で俺が言いたかったことは、配列 a について 「a」や「a(:, :)」と書くと配列全体を意味する。 「a(i, j)」と書くのは(前もって i, j に整数が代入されていれば)成分 a(i, j) つまりただひとつの数字を意味する。 ということ。 したがって b(:, :, t) = a と書けば配列全体の代入なので b(1, 1, t) = a(1, 1) b(1, 2, t) = a(1, 2) のように配列の対応する成分が代入されるが、b(:, :, t) = a(i, j) と書けば b(1, 1, t) = a(i, j) b(1, 2, t) = a(i, j)... のように、ただひとつの同じ数字が代入される。
| - くだすれFORTRAN(超初心者用)その6
379 :デフォルトの名無しさん[sage]:2014/04/15(火) 22:51:15.04 ID:2Visq3rw - b(:, :, t) と a(:, :) は同じ次元です。
>>369,370 のレスを踏まえて書いているので、 do t=1,100 b(:, :,t)=a end do のように使うことを想定しています。 b(:, :, :) は3次元配列だけど、b(:, :, 1), b(:, :, 2), ..., b(:, :, 100) はそれぞれ2次元配列です。 なので b(:, :, t) = a は2次元配列を2次元配列に代入していることになります。
|
|