回 帖 发 新 帖 刷新版面

主题:求助,如果将大批量数据读入数组

2.0 3.0 1.0 3.0 .。。。。。。。。。5.0 6.0
1.0 3.0 1.0 3.0 .。。。。。。。。。7.0 6.0
5.0 3.0 1.0 3.0 .。。。。。。。。。5.0 6.0
1.0 3.0 1.0 3.0 .。。。。。。。。。4.0 6.0
3.0 3.0 1.0 3.0 .。。。。。。。。。5.0 7.0
4.0 3.0 1.0 3.0 .。。。。。。。。。5.0 6.0
.。。。。。。。。。。。。
2.0 3.0 1.0 3.0 .。。。。。。。。。2.0 6.0

每一行有m个小数,数之间是空格,总共n行,
如何把这些数读到一个数组中,比如num(n,m)
非常感谢!

回复列表 (共6个回复)

沙发


DO J=1,N
  DO I=1,M
    READ(COD_INFI,*)NUM(I,J)
  ENDDO
ENDDO

板凳

program main
  implicit none
 
  real:: RX(6, 4)
  
  open(unit = 5, file = "In05.txt")
  read(unit = 5, fmt = *) RX
  write(unit = *, fmt = *) RX
  close(5)
  
  stop      
end program main

! In05.txt 输入文件

0.000    0.6308  0.005    1.1488
0.02    0.7474   0.04    0.4783
0.075    0.2379  0.125    0.0760
0.175    -0.0347  0.225    -0.0835
0.275    -0.1214  0.325    -0.1275
0.375    -0.1319  0.425    -0.1410

3 楼

二楼的可以读进去数据,也可以全部输出,
但单独输出比如RX(2,3)的时候和原来的数据
对不上,但全部输出RX时可以,不知为什么?

4 楼

请注意 Fortran 中 数组的存储方式 -- Column Major。

5 楼

请问如果我再想让它按原来格式输出,是不是要用reshape函数把它赋值给另外一个一维数组再用循环输出呢?

6 楼

二楼的可以读进去数据,也可以全部输出,但单独输出比如RX(2,3)的时候和原来的数据对不上,但全部输出RX时可以,不知为什么?

我来回复

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