Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Fortran语言读取矩阵_Fortran - Fatal编程技术网

用Fortran语言读取矩阵

用Fortran语言读取矩阵,fortran,Fortran,我尝试读取和重写一个只有一系列特定列的矩阵。例如,我有一个11xN矩阵,我想在一个只有第2列和第3列的2xN矩阵中重写它 program fluxXYlambda implicit none INTEGER*8::n,i REAL*8,ALLOCATABLE::dati(:,:) open(10,file='test.txt') n=0 do read(10,*,end=100) n=n+1 end do 100 continue rewind(10) allocate(

我尝试读取和重写一个只有一系列特定列的矩阵。例如,我有一个11xN矩阵,我想在一个只有第2列和第3列的2xN矩阵中重写它

program fluxXYlambda
implicit none

INTEGER*8::n,i
REAL*8,ALLOCATABLE::dati(:,:)

open(10,file='test.txt')
n=0

do
    read(10,*,end=100)
    n=n+1
end do
100 continue
rewind(10)

allocate(dati(11,n))

open(12,file='coordXY.txt')

do i=1,n
    read(10,*) dati(4,i),dati(5,i)
    write(12,*) dati(4,i),dati(5,i)
end do

end program flussiXYlambda

文件coordXY.txt已创建,但为空。

最后,由于@francescalus,我解决了这个问题


命令read10,*dati1:5,我读取矩阵dati直到第5列,然后我可以保存它的特定列。非常感谢

你试过看n的值,看它是否如你所期望的那样吗?另外,您的read10,*dati4,i,dati5,i没有读取test.txt的第二列和第三列。你能解释一下test.txt的布局吗?@francescalus是的,正在阅读第4和第5行,这只是一个10列文件的示例,我想看第4和第5行,如果我想看第2和第3行,逻辑步骤不变。n是文件中的行数。我在第一个do cicleIt也没有读第四列和第五列,而是第一列和第二列。你把读数放在哪里并不影响读数。如果你想读这些专栏,你需要像read10,*dati1:5,i。可以说,如果您可以更改问题,使其与示例代码相匹配,也可能会更好。我猜您的n出于某种原因为零,否则您会在输出文件中得到一些内容。写出要检查的n值。除了结尾处的不同文件名的语法错误之外,您的代码为我运行,并将数据放入指定的输出文件中。现在,由于@francescalus指出的错误,这是错误的。但是,如果您修复了这个问题,代码将正常工作,并按照您的要求执行。可能您没有找到正确的输出文件。或者您的编译器可能会因为预先存在的空白文件而忽略某些内容。