当前位置: 首页 > 程序语言 >fortran如何获取文件中指定列的数据

fortran如何获取文件中指定列的数据

作者 carrolyb
来源: 小木虫 400 8 举报帖子
+关注

我想读取给定第二列的数据(文件数据如下):
  4.902380       24.09600       19.19362   
   5.117340       24.64800       19.53066   
   5.376030       24.58470       19.20867   
   1.905530       7.827580       5.922050   
   1.605610       8.201700       6.596090   
   1.946720       7.271230       5.324510   
   1.742370       10.20920       8.466830   
   1.901910       9.991350       8.089440   
   1.525720       10.93020       9.404480   
   1.705040       12.12240       10.41736   
   1.564290       11.48820       9.923910   
   1.638400       12.97950       11.34110   
   1.404010       20.71810       19.31409   
   1.571210       21.79690       20.22569   
   1.633620       23.00130       21.36768   
   1.478230       11.46750       9.989270   
   1.470280       14.52380       13.05352   
   1.670590       15.37190       13.70131   
编写的程序为:
program main
implicit none
integer i
real ::a(10,3),b(10)
open(1,file='C:\Users\user\Desktop\11\zongie.txt')
do i=1,10
read(1,*) a(i,2)
b(i)=a(i,2)
enddo

close(1)
write(*,*) b
end
但是运行后总是输出的是第一列的数据,不知道程序哪里有问题,请高手帮忙看看,谢谢! 返回小木虫查看更多

今日热帖
  • 精华评论
  • 浔荆

    read(1,*) a(i,2)
    这个代码会读取编号1文件中某行的所有数据,然后逐个赋值给后面的变量列表。但由于变量列表只有一个变量,所以只会将该行数据中的第一个赋值给变量,也就是你的第一列数据。
    改成这样应该就行了,其他不用变:
    read(1,*) a(i,

    另:文件编号不要用个位数,可能会与系统默认编号冲突

  • 浔荆

    read(1,*) a(i,1:3)
    上面的冒号被系统吃了。。。

  • www.cctv

    你这个有规律,可以采用代码。

  • liupw789k

    Do j=1,3
       Do i=1,10
          Read(1,*)a(i,j)
       Enddo
    Enddo
    B(=a(:,2)
    Fortran是按列读取数据的!
    手机打字真麻烦!!

  • 庐山活水

    双循环就可搞定

  • carrolyb

    引用回帖:
    3楼: Originally posted by 浔荆 at 2015-10-26 11:46:06
    read(1,*) a(i,1:3)
    上面的冒号被系统吃了。。。

    明白了,谢谢

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓