我有一个名为test.dat
的文件,其中包含以下6个元素:
test.dat
文件的内容
1
2
3
4
5
6
如何将这些元素放在名为test1.dat
的文件中,该文件包含带有以下元素的矩阵A(3x2)
:
所需的
test1.data
文件内容
1 2
3 4
5 6
换句话说,我如何阅读test.dat
的每一行并将它们作为元素放在矩阵A(3x2)
中并将矩阵保存在test1.dat
文件中?
到目前为止,我尝试按如下方式阅读每个元素:
integer function myf(unit, file, rows, columns) implicit none integer, intent(in) :: unit, rows, columns character(len=*) :: file integer, dimension (1:columns, 1:rows) ::x OPEN(unit, FILE=file, STATUS='OLD', ACTION='READ') read(unit,*) x close(unit) myf= 0 end function myf program test integer (kind=4) :: a, b, f INTEGER, DIMENSION(3,2) :: m do a=1,3 do b=1,2 f=a*b m(a,b)=myfile(99, "test.dat", f, 1) write(*,*) m(a,b) end do end do end program test
但我只能阅读test.dat
文件的第一个元素。现在,这是我的问题:
- 这条代码有什么问题,我可以阅读
test.dat
文件的第一个元素?- 如何控制
醇>test.dat
文件并将其放入矩阵A(3x2)
中,如上所述?
如果有人帮助我,我感激不尽。
答案 0 :(得分:0)
以下代码是一个适用于阅读的示例:
您必须注意 - 在Fortran中,最左侧的索引(在这种情况下为i
)变化最快,因此元素的顺序为a(1,1)
,a(2,1)
,{{1 }},
a(3,1)
等等。因此,如果您只是打印数组,输出也将是
1 3 5 2 4 6。
a(1,2)