【问题标题】:matrix from txt fortran来自 txt fortran 的矩阵
【发布时间】:2026-01-04 09:35:01
【问题描述】:

我有一个这样的 txt 文件:

 24.2 30.6 23.9 23.7 26.5 24.7
 24.4 30.4 24.1 23.8 26.3 24.7
 24.2 30.5 24.4 23.6 26.2 25.1
 24.5 30.4 23.9 23.8 26.1 24.8
 24.0 30.4 24.3 23.5 26.3 25.0

我无法读入矩阵(5,6),Fortran 运行时错误:文件结束

代码是:

open(11,file='aux.txt',status='old',decimal='comma')

  open(13,file='temperatura.txt',status='replace')
  open(14,file='temperaturamod.txt',status='old')  

do i=1,fil

      READ (11,*)t1,t2,t3,t4,t5,t6       
      WRITE (13,'(6F5.1)')t1,t2,t3,t4,t5,t6
  end do

  DO i = 1,5
    DO j = 1,6
     READ (13,*) matriz (i,j) 
    END DO
  END DO

【问题讨论】:

  • 在您发布的那篇文章中,您还没有初始化fil。不是fil = 5吗?
  • 我认为在打开该数据文件的语句中包含decimal='comma' 是不可取的。它甚至可能有害。
  • 实际上,既然我已经有机会对其进行测试,那么 decimal='comma' 的包含似乎并不重要——至少对于处理此示例的相当新版本的 gfortran 而言不是输入文件。我不知道这是否符合标准。

标签: matrix fortran


【解决方案1】:

尝试逐行读取数据到matriz

  DO i = 1,5
     READ (13,*) matriz (i,:) 
  END DO

或者

  DO i = 1,5
     READ (13,'(6F5.1)') matriz (i,:) 
  END DO

您必须重新打开文件单元 13 才能读取或将光标放在文件开头:rewind(13)

【讨论】: