大学院情報処理演習 第 5 回 (行列の反復解法) 「データの読み込み」 講義ノート目次

Ruby によるデータの読み込みは、open -- end を使用し、

 

open('ファイル名','r') do |ファイル変数|
    while 内部変数 = ファイル変数.gets
       if /(1列目の正規表現)\s+(2列目の正規表現).../ =˜ 内部変数
           格納する変数  = $1
           格納する変数  = $2
              :
       end
    end
end

であった。形式は学部では、TAB 区切りによるものを、正規表現を使用して分解した。 数値列は \d+ や \d+\.\d+ を用い、to_i または to_f 変換を必要とした。

Fortran では、open -- read -- close を使用する。データを読み込む例を見てみよう。

	
      program read
      implicit none
      integer :: fr = 15, fw = 26
      integer a(0:2,0:3), i, j
      real(8) r(0:2,0:3)
      open(fr, file = 'test.dat')
      read(fr, *) a(0,0:3)
      read(fr, *) a(1,0:3)
      read(fr, *) a(2,0:3)
      close(fr)
      do i = 0, 2
         write(*,*) a(i,:)
      end do
      do i = 0, 2
         do j = 0, 3
            r(i,j) = dble(a(i,j))
         end do
      end do
      open(fw, file = 'result.dat')
      do i = 0, 2
         write(fw,'(100e12.4)') r(i,:)
      end do
      close(fw)
      end program read

データは整数値を読み込み、dble 関数で整数値を倍精度変換している。 read / write の () の左側は、ファイルのラベルで、 5, 6 以外の番号を自由につけてよい。5 は標準入力 (キーボード入力)、 6 は標準出力 (画面出力) である。read(5,*) は read(*,*), write(6,*) は write(*,*) である。 読み込み専用のファイルには、action='read' などのオプションや、 ファイルの読み込み確認のための iostat なども付け加えることができる。