배열 변환에 대하여 질문을 올립니다.

게시판 IDL Q&A 배열 변환에 대하여 질문을 올립니다.

2 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #1085 Reply
      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

      이렇게 코드를 작성하였는데 에러가 발생하고 있습니다. 제가 원하는 형태로 변환을 하기는
      힘든건가요??

    • #1086 Reply
      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

      이렇게 해결을 하였습니다 번거롭게해드려 죄송합니다

    • #1087 Reply
      Sangwoo
      회원

      예. 처음에 적어주신 예제코드에서 ‘에러발생’이라고 된 부분이 문제입니다. OPENW로 열어놓은 파일에 또 OPENR을 하는 것 자체가 허용이 되지 않거든요. 어쨌든 입력파일과 출력파일의 값의 위치를 나타내는 인덱스에 대해서만 좀 주의를 기울이면 어렵지않게 해결되는 문제라고 볼 수 있겠습니다.

2 답변 글타래를 보이고 있습니다
'배열 변환에 대하여 질문을 올립니다.'에 답변달기
글쓴이 정보: