旧2-5. Fortran毎日学習Fortran90(sum) 前回使ったmatmulは配列で使える関数でしたが、他にも配列用関数はあります。 今回は、sumを使ってみます。 まずはsumを使わないプログラムです。 1~5までの和なので結果は15で合ってますね。 ものすごく簡単になり... 2017.12.27旧2-5. Fortran毎日学習
旧2-5. Fortran毎日学習Fortran90(sumその2) 多次元配列のsumをしてみます。このように値を格納した2x5の配列の要素の総和を計算します。 sumの引数に配列名を指定するだけで求めることができます。 dim=で指定することで、次元別の計算もできます。 ... 2017.12.28旧2-5. Fortran毎日学習
旧2-5. Fortran毎日学習Fortran90(product) productを使って配列の積を求めます。 全要素を掛けた結果、つまり総乗を求めたいので、このような計算となります。 productを使えば一発です。 sumと同じくdimやmaskを指定してフィルタリングすることがで... 2017.12.29旧2-5. Fortran毎日学習
旧2-5. Fortran毎日学習Fortran90(shape,maxval,minval,reshape) 配列で使えるその他の関数としてshape,maxval,minval,reshapeを使ってみます。 まずはshapeから。shapeは、配列の形状を戻します。 shapeは値が未初期化でも初期化していても、常に配列の各次元の要素数... 2017.12.30旧2-5. Fortran毎日学習
旧2-5. Fortran毎日学習Fortran90(cshift,eoshift) 配列の要素のシフトをしてくれる関数cshiftとeoshiftを使います。 cshiftはcircular shiftを意味しており、循環するシフトです。 上記ではshift値に2を指定したので要素が2つ左にずれて、飛び出した2個の... 2017.12.31旧2-5. Fortran毎日学習
旧2-5. Fortran毎日学習Fortran(merge) mergeという言葉をずっと誤解して覚えていたので、このmerge関数も単に配列を結合するだけと思っていました。 おそらくこんな使い方だと思ったので、 下のようにプログラミングしてビルドしようとすると、 ビルドエラーになりまし... 2018.01.01旧2-5. Fortran毎日学習
旧2-5. Fortran毎日学習Fortran(spread) spread関数を使います。 spreadは、配列の次元を増やす関数です。増えた配列の値は、元の配列からコピーされます。 結果がよくわからないので、shape関数を使ってspreadした後の配列の形状を確認します。 3... 2018.01.02旧2-5. Fortran毎日学習