- This topic has 2개 답변, 2명 참여, and was last updated 10 years, 11 months 전에 by ckstn9610.
-
글쓴이글
-
-
안녕하세요? 밤새워 작업을 하고 있는 고등학생 유저의 첫 질문입니다.
목표로 하는 것은 여러 개의 2차원 배열을([RGB, number]_실질적으로는 1차원 3개) 엑셀을 이용하여 추세선을 그리고자 하는 것 입니다.
이를 위하여 배열을 한 줄씩 프로그래밍을 통해 csv로 저장한 후에 합치고자 다음과 같이 하였습니다.pro rnlcksgdk3, array, filename
FOR j = 0, 2 DO BEGIN
openw, 1, filename+string(j)+’.csv’
printf, 1, reform(array[j,*])
close, 1ENDFOR
END이렇게 하니 엑셀에서 다음과 같이 나타나더군요.
9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 8 9 9 9 9
9 9 9 9 8 9 9 9 9 9 9 9 8 9 9 9 8 8 8 10
…기존 사이트에서 ‘csv’를 검색하자 다음과 같은 댓글을 발견하였습니다.
>
이상우 (2008-05-13 12:43:06)
프린트되는 숫자값이 앞뒤 여백이 없어야하는 상황인 것 같군요. 그러면 매 숫자값마다 string함수를 사용한 다음 바로 strtrim함수를 사용하면 됩니다. 각 줄마다 3개씩의 숫자값이 들어가는데, 예를 들어 이 세 값이 a, b, c라면 다음과 같이 되겠지요.printf, lun, strtrim(string(a), 2), ‘,’, strtrim(string(b), 2), ‘,’, strtrim(string(c), 2)
>저는 이 방법을 배열의 크기를 알고 있는 경우에 하나하나 지정해주는 방법으로 이해하였습니다.
for문을 덧붙여서 사용하려고 해도 printf 때문에 어떻게 건드려야 할지 모르겠습니다.배열을 자동적으로 csv로 저장하려면 어떻게 해야할까요?
-
Jonghyuk회원
strjoin 을 사용면 되지 않을까요?
IDL> print, indgen(5)
0 1 2 3 4
IDL> print, strjoin(indgen(5), ‘,’)
0, 1, 2, 3, 4아니면 도움말에서 write_csv를 검토해 보십시오. 이게 더 편할 수도 있습니다.
-
질문자 입니다.
고민하다가 다음과 같이 실행하니까 되더군요;;
제가 printf의 성질을 덮어쓰는 것으로 오해하고 있었습니다.FOR i = 0, (size(array))[1]-1 DO BEGIN
printf, 1, (array[i])
endfor
-
-
글쓴이글