回 帖 发 新 帖 刷新版面

主题:数据文件的读取与存放

是这样的:这个程序是从1.txt文件读取数据,然后存放在2.txt中,要求格式1.txt和2.txt文件一样。
主程序:program main
dimension z(16,20)
open(10,file="1.txt")
do i=1,16
  read(10,*)(z(i,j),j=1,20)
enddo
close(10)
open(100,file="2.txt")
  do i=1,16
  write(100,*)(z(i,j),j=1,20)
  enddo
close(100)
end  

1.txt文件数据如下:   
 27 22 19 18 18 18 19 20 24 36 47 53 57 57 54 47 46 47 50 55
 29 25 22 20 19 19 19 20 24 35 46 52 56 56 50 46 45 46 48 55
 38 33 27 23 20 19 19 22 25 35 46 52 55 49 46 44 43 43 47 52
 47 40 35 26 22 20 22 23 29 36 46 51 50 44 40 36 36 41 45 52
 53 48 42 35 28 24 24 28 33 40 47 50 49 40 30 27 29 33 45 51
 58 52 47 42 36 32 33 32 37 43 49 53 48 35 24 23 26 35 48 56
 59 56 50 46 41 38 37 39 44 50 56 58 54 37 24 24 32 40 53 60
 59 56 52 49 45 42 42 46 50 56 60 61 58 48 40 36 40 49 56 64
 54 53 54 54 50 48 48 52 56 62 65 65 64 57 50 48 50 55 61 66
 54 55 56 57 56 54 55 57 61 66 69 70 68 64 58 56 57 59 64 70
 59 58 60 61 62 60 60 61 64 70 73 74 73 72 66 64 64 66 69 74
 67 65 66 67 67 66 64 66 70 73 72 75 78 76 72 69 69 70 73 77
 73 73 73 73 73 73 72 72 73 73 72 72 79 78 76 76 74 76 77 80
 77 77 77 77 76 75 74 73 74 76 76 76 78 79 80 79 79 79 81 84
 78 79 78 78 78 77 75 74 74 77 78 79 81 82 82 82 82 83 85 86
 82 81 80 80 78 78 77 75 75 78 80 82 83 84 84 85 85 86 87 88
结果和这个不一样,如下:望高手赐教,我是新手。
       27.000000       22.000000       19.000000       18.000000
       18.000000       18.000000       19.000000       20.000000
       24.000000       36.000000       47.000000       53.000000
       57.000000       57.000000       54.000000       47.000000
       46.000000       47.000000       50.000000       55.000000
       29.000000       25.000000       22.000000       20.000000
       19.000000       19.000000       19.000000       20.000000
       24.000000       35.000000       46.000000       52.000000
       56.000000       56.000000       50.000000       46.000000
       45.000000       46.000000       48.000000       55.000000
       38.000000       33.000000       27.000000       23.000000
       20.000000       19.000000       19.000000       22.000000
       25.000000       35.000000       46.000000       52.000000
       55.000000       49.000000       46.000000       44.000000
       43.000000       43.000000       47.000000       52.000000
       47.000000       40.000000       35.000000       26.000000
       22.000000       20.000000       22.000000       23.000000
       29.000000       36.000000       46.000000       51.000000
       50.000000       44.000000       40.000000       36.000000
       36.000000       41.000000       45.000000       52.000000
       53.000000       48.000000       42.000000       35.000000
       28.000000       24.000000       24.000000       28.000000
       33.000000       40.000000       47.000000       50.000000
       49.000000       40.000000       30.000000       27.000000
       29.000000       33.000000       45.000000       51.000000
       58.000000       52.000000       47.000000       42.000000
       36.000000       32.000000       33.000000       32.000000
       37.000000       43.000000       49.000000       53.000000
       48.000000       35.000000       24.000000       23.000000
       26.000000       35.000000       48.000000       56.000000
       59.000000       56.000000       50.000000       46.000000
       41.000000       38.000000       37.000000       39.000000
       44.000000       50.000000       56.000000       58.000000
       54.000000       37.000000       24.000000       24.000000
       32.000000       40.000000       53.000000       60.000000
       59.000000       56.000000       52.000000       49.000000
       45.000000       42.000000       42.000000       46.000000
       50.000000       56.000000       60.000000       61.000000
       58.000000       48.000000       40.000000       36.000000
       40.000000       49.000000       56.000000       64.000000
       54.000000       53.000000       54.000000       54.000000
       50.000000       48.000000       48.000000       52.000000
       56.000000       62.000000       65.000000       65.000000
       64.000000       57.000000       50.000000       48.000000
       50.000000       55.000000       61.000000       66.000000
       54.000000       55.000000       56.000000       57.000000
       56.000000       54.000000       55.000000       57.000000
       61.000000       66.000000       69.000000       70.000000
       68.000000       64.000000       58.000000       56.000000
       57.000000       59.000000       64.000000       70.000000
       59.000000       58.000000       60.000000       61.000000
       62.000000       60.000000       60.000000       61.000000
       64.000000       70.000000       73.000000       74.000000
       73.000000       72.000000       66.000000       64.000000
       64.000000       66.000000       69.000000       74.000000
       67.000000       65.000000       66.000000       67.000000
       67.000000       66.000000       64.000000       66.000000
       70.000000       73.000000       72.000000       75.000000
       78.000000       76.000000       72.000000       69.000000
       69.000000       70.000000       73.000000       77.000000
       73.000000       73.000000       73.000000       73.000000
       73.000000       73.000000       72.000000       72.000000
       73.000000       73.000000       72.000000       72.000000
       79.000000       78.000000       76.000000       76.000000
       74.000000       76.000000       77.000000       80.000000
       77.000000       77.000000       77.000000       77.000000
       76.000000       75.000000       74.000000       73.000000
       74.000000       76.000000       76.000000       76.000000
       78.000000       79.000000       80.000000       79.000000
       79.000000       79.000000       81.000000       84.000000
       78.000000       79.000000       78.000000       78.000000
       78.000000       77.000000       75.000000       74.000000
       74.000000       77.000000       78.000000       79.000000
       81.000000       82.000000       82.000000       82.000000
       82.000000       83.000000       85.000000       86.000000
       82.000000       81.000000       80.000000       80.000000
       78.000000       78.000000       77.000000       75.000000
       75.000000       78.000000       80.000000       82.000000
       83.000000       84.000000       84.000000       85.000000
       85.000000       86.000000       87.000000       88.000000

回复列表 (共7个回复)

沙发


我自己调通了,改了以哈形式,供有需要的人参考,下面的是编译成功的

program main
dimension a(16,20)
open(10,file="1.txt")
do i=1,16
 
  read(10,*) (a(i,j), j=1,20 )

  
 
enddo
close(10)

open(11,file="2.txt")
  do i=1,16
  write(11,100)(a(i,j),j=1,20)
  enddo
  100 format(1x,20f7.2)
close(11)
end

板凳

楼主厉害啊!

3 楼


建议楼主采用好的编程风格,并养成习惯,如明确说明变量类型等等

4 楼

你源数据是整型,为何不用整型的方式来读取呢?

5 楼


有些变量是可以不定义的啊啊,

6 楼


源数据是整型,但是我数据处理的时候要实型的,我就开始变成实型的算了

7 楼

学习了,话说回来,fortran读数据还真是没有R方便啊,不过如果读海量数据,比如1个G,R就根本跑不动了,编译语言和解释语言?

我来回复

您尚未登录,请登录后再回复。点此登录或注册