- This topic has 2개 답변, 2명 참여, and was last updated 10 years, 6 months 전에 by Sangwoo.
-
글쓴이글
-
-
good757회원
제가 A.txt라는 파일이 있습니다. 파일을 열면 다음과 같습니다.
0.00 0.00 0.00 0.00 0.00 0.00
0.00 54.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 76.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00
이런한 배열은 [z, x좌표값, y좌표값]로 표현을 해주고 싶습니다
0.00 0, 0
0.00, 1, 0
0.00, 2, 0
0.00, 3, 0
0.00, 4, 0
0.00, 5, 0
0.00 0, 1
54.00, 1, 1
0.00, 2, 1
0.00, 3, 1
0.00, 4, 1
0.00, 5, 1
0.00 0, 2
0.00, 1, 2
0.00, 2, 2
0.00, 3, 2
0.00, 4, 2
0.00, 5, 2
이런 형식으로 나타내고 싶습니다
lon_num=6
lat_num=6
bias_matrix=fltarr(lon_num, lat_num) <<파일 A의 형태
bias_matrix_3D=fltarr(lon_num*lat_num, lon_num, lat_num) < 원하는 형태의 파일
for ii=0, ct-1 do begin
filename=file_basename(result6[ii], ‘.txt’) <<파일 A
openr,7, result6[ii] < 파일 A
readf, 7, bias_matrix
close, 7
openw, 9, ‘d:/kriging/bias_matrix/’+filename+’_bias matrix_3D.txt’ <원하는 형태
openr, 9, bias_matrix_3D <<에러 발생
readf, 9, bias_matrix_3D <<에러 발생
X=lon_num-1
y=lat_num-1
for y=0, y-1 do begin
for x=0, x-1 do begin
bias_matrix_3D=[bias_matrix(*,*), x, y]
printf,9, bias_matrix_3D
close, 9
endfor
endfor
endfor
end이렇게 코드를 작성하였는데 에러가 발생하고 있습니다. 제가 원하는 형태로 변환을 하기는
힘든건가요?? -
good757회원
for ii=0, ct-1 do begin
filename=file_basename(result6[ii], ‘.txt’)
openr,7, result6[ii]
readf, 7, bias_matrix
close, 7
openw, 9, ‘d:/kriging/bias_matrix/’+filename+’_bias matrix_3D.txt’
for j=0, lat_num-1 do begin
for i=0, lon_num-1 do begin
k=j*(lon_num)+i
bias_matrix_2D[0,k]=bias_matrix(i,j)
bias_matrix_2D[1,k]=i
bias_matrix_2D[2,k]=j
endfor
endfor
printf,9, bias_matrix_2D, format='(3F9.2)
close, 9
endfor
end이렇게 해결을 하였습니다 번거롭게해드려 죄송합니다
-
Sangwoo회원
예. 처음에 적어주신 예제코드에서 ‘에러발생’이라고 된 부분이 문제입니다. OPENW로 열어놓은 파일에 또 OPENR을 하는 것 자체가 허용이 되지 않거든요. 어쨌든 입력파일과 출력파일의 값의 위치를 나타내는 인덱스에 대해서만 좀 주의를 기울이면 어렵지않게 해결되는 문제라고 볼 수 있겠습니다.
-
-
글쓴이글