게시판 답변이 생성됐습니다
-
글쓴이글
-
이런 방법은 어떨까요?
dum = randomu(seed, 159)index = sort(dum)
find = index[0:119]
out = index[120:*]밤늦은 시간까지 답변 감사합니다.
polygon 외에 다른 방법을 좀 더 생각해 봐야겠군요.polygon 함수를 사용해서 그려봤지만 bin의 갯수가 늘어나면 속도가 너무 느려 쓸수가 없습니다. window함수의 refresh 메소드도 추가해 봤지만 그래도 느리더군요. 그림 한장 그리는데 속도가 너무 걸리니 효휼이 좋질 않습니다.
direct그래픽을 사용하면 빠르긴하지만 그림이 예쁘질 않네요….
polygon외에 다른 방법은 없을까요?- 이 답변은 tlseorb0111에 의해 8 years, 11 months 전에 수정됐습니다.
답변 감사합니다.
혹시 idlneturl object 나 다른 함수를 사용해서 ftp 서버에 있는 파일의 last modified time 을
얻을 수 있는 방법이 있는지 궁금합니다.예를 들어 linux에서는
$ ftp spdf.gsfc.nasa.gov
Name : anonymous
ftp> cd pub/data/omni/omni_cdaweb/hro_5min/1981
ftp> modtime omni_hro_5min_19811201_v01.cdf
를 이용하면 다음과 같은 정보를 얻을 수 있는데요
omni_hro_5min_19811201_v01.cdf 02/17/2014 07:39:28 GMT이러한 작업이 혹시 idl 에서도 가능한지 궁금합니다.
단순히 a와 b가 같은 값을 가지는 index를 원하는 것이라면
c = a-b
idx = where(c eq 0) 이면 될듯합니다.
그게 아니라 intersection을 구하고 싶으신거라면 astron 라이브러리의 match 프로시저를 참고하셔도 될 것 같습니다.a = [0, 1, 0, 0, 1]
b = [1, 1, 0, 1, 1]
wh_a = WHERE(a EQ 1)
wh_b = WHERE(b EQ 1)match, wh_a, wh_b, suba, subb
print, wh_a[suba]
print, wh_b[subb]- 이 답변은 tlseorb0111에 의해 9 years, 2 months 전에 수정됐습니다.
파일을 어떻게 올리는지 몰라 코드를 써놓겠습니다.
예전에 인터넷에서 찾은것인데 출처가 기억이 나질 않네요.example
3개중 2개
res = combigen(3, 2)
print, res
0 0 1
1 2 2FUNCTION COMBIGEN, n, k
IF n LT 2 THEN MESSAGE, ‘N must be greater than 1.’
IF k GT n THEN MESSAGE, ‘K must be less than or equal to N.’possible_prev = INDGEN(n)
FOR vi=1l, k-1 DO BEGIN
possible_next = INDGEN(n)
; only really possible when possible_next > possible_prev
prevsize = SIZE(possible_prev, /dimen)
possible_prev = REBIN(REFORM(possible_prev,1,prevsize), [n,prevsize], /sample)
possible_next = REBIN(possible_next, [n,prevsize], /sample)
good = WHERE(possible_next GT possible_prev, ngood)IF vi EQ 1 THEN BEGIN
; set up array that answers get stored in
result = [[possible_prev[good]],[possible_next[good]]]
ENDIF ELSE BEGIN
; add to result
good_ai = ARRAY_INDICES(possible_prev, good)
result = [[result[good_ai[1,*],*]], [possible_next[good]]]
ENDELSEpossible_prev = possible_next[good]
ENDFORRETURN, result
END
- 이 답변은 tlseorb0111에 의해 9 years, 6 months 전에 수정됐습니다.
좋은 답변 감사합니다.
말씀해 주신 save 파일을 사용하는 것도 생각해 봐야겠네요.
contour 프로시저의 path_xy 키워드를 활용하면 될것 같습니다.
example)
x = DINDGEN(20)
y = RANDOMU(seed, 20, /double)PLOT, x, y
dum = REBIN(y, N_ELEMENTS(y), 2) ; contour프로시저에 넣기위서서
lev = 0.5 ; 원하는 값
CONTOUR, dum, x, [0, 1], level=lev, path_xy=x_point, /path_data_coord, closed=0, /path_double
;path_xy키워드를 통해서 level에 해당되는 x촤표를 얻을 수 있습니다.
con = WHERE(x_point[1,*] EQ 0)x_point = REFORM(x_point[0, con]) ;
newy = INTERPOL(y, x, x_point)
PRINT, newy
OPLOT, x_point, newy, psym=4, symsize=1.5제 경우에는 별 문제가 없었는데, 위 방법이 여러 상황에 잘 적용되는 것인지는 모르겠네요
- 이 답변은 tlseorb0111에 의해 10 years, 2 months 전에 수정됐습니다.
바쁘실텐데 답변 감사합니다.
한가지 더 질문이 있습니다.
ax = OBJ_NEW(‘IDLGRAXIS’, 0, ycoord_conv=[0.1, 1])
ax -> GetProperty, TICKTEXT=oTT
oTT -> SetProperty, RECOMPUTE_DIMENSIONS=2
om = OBJ_NEW(‘IDLGRMODEL’)
ov = OBJ_NEW(‘IDLGRVIEW’, viewplane_rect=[0,0,1,1])
ow = OBJ_NEW(‘IDLGRWINDOW’, retain=2)om->ADD, ax
ov->ADD, om
ow->DRAW, ovnewr = [0, 1d]+1d7
tran = NORM_COORD(newr)
ax->SETPROPERTY, range=newr, xcoord_conv=tran
ow->DRAW, ov
위 예제를 돌려봤을때 축의 위치가 설정하대로 나오질 않습니다.
newr 을 크게 잡으면(9d7 이상) 이런 현상이 나타나는데요…
처음 설정해준 viewplane_rect에 비해 너무 넓은 범위를 잡아서 그런건가요??- 이 답변은 tlseorb0111에 의해 10 years, 7 months 전에 수정됐습니다.
답변 감사합니다
답변 감사합니다
예제를 돌렸을때 출력되는 값입니다.
heap memory used: 645674609, max: 645674609, gets: 271719313, frees: 271716341
heap memory used: 645674609, max: 645674609, gets: 271719313, frees: 271716341 -
글쓴이글