0
특정 열의 열만있는 행렬을 읽고 다시 쓰려고합니다. 예를 들어 나는 11 x n
매트릭스를하고 난 열만 2와 2 x n
매트릭스를 재 작성하려면, 3Fortran에서 행렬 읽기
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
이 만들었지 만 비어 있습니다.
'n'의 값을보고 당신이 예상 한대로 있는지 보았습니까? 또한'read (10, *) dati (4, i), dati (5, i)'는'test.txt'의 두번째와 세번째 컬럼을 읽지 않습니다. 'test.txt'의 레이아웃을 명확히 할 수 있습니까? – francescalus
@ francescalus 네, 4 번째와 5 번째를 읽었습니다. 10 번째 열의 파일이있는 예일뿐입니다. 4 번째와 5 번째 걸릴 것입니다. (2 번째와 3 번째 걸릴 경우 동일합니다.) 논리적 인 단계는 변경되지 않습니다. . 'n'은 파일의 줄 수와 동일합니다. 나는 첫 번째 칸에서 그들을 셀다. –
네 번째와 다섯 번째 칼럼을 읽지 않고 첫 번째와 두 번째 칼럼을 읽지 않는다. 읽은 숫자를 어디에 두어도 독서에는 영향을 미치지 않습니다. 이 칼럼들을 읽고 싶다면'read (10, *) dati (1 : 5, i)'와 같은 것이 필요할 것이다. 질문을 변경하여 예제 코드와 일치하도록하는 것이 좋습니다. – francescalus