$
は 1 つのコマンドが複数行になる場合に用いる。
. /usr/local/rsi/idl_5.5/bin/idl_setup.bash
(最終更新日:2003/12/09)
$ idlde
IDL> exit
IDL> demo
(最終更新日:2003/12/09)
IDL> datatemplate=ascii_template()
IDL> file=dialog_pickfile()
IDL> data=read_ascii(file, template=datatemplate)
IDL> print, data
IDL> print, data.field1
構造体の下層データのアクセスは .
で変数名をつなぐ。
field1はテンプレートダイアログで決めた列の名前。
dialog_pickfile()
を以下のようにすると
ファイル選択ダイアログで選択候補にフィルタをかけることができる。
IDL> file=dialog_pickfile(filter='*.dat')
(最終更新日:2003/12/09)
IDL> plot, data.field1, data.field2
IDL> plot, data.field1, data.field2, $
title='title', xtitle='xtitle', ytitle='ytitle'
(最終更新日:2003/12/09)
IDL> file=dialog_pickfile(/write, filter='*.dat')
IDL> openw, 1, file
'1' は適当に割り当てたは理論ユニット番号で、
以降このファイルはこの理論番号で参照される。
IDL> printf, 1, data
IDL> close, 1
printf
で以下のようにする。
IDL> printf, 1, 'datafile.dat', format='(5f8.3)'
5 は値を横に並べる数。f は実数を表す。
8 は全桁数(小数点も含む)で 3 は小数点以下の桁。
ここでは直接ファイルを指定している(ファイル名を "'"
で囲む)。
openw, lun, mod_file, /get_lun
printf, lun, format='(i4, f15.2)', j, k
free_lun, lun
(最終更新日:2003/12/10)
IDL には 4 つのタイプのコードがある。
以下、プロシージャのについて。
pro
で始まり、end
で終わる。
pro proname [,argument ,...]
...
...
end
proname はプロシージャ名。
argument は引数。
pro readwrite ; ';' から文末まではコメント
datatemplate=ascii_template()
file=dialog_pickfile(filter='*.DAT')
data=read_ascii(file, template=datatemplate)
file=dialog_pickfile(/write, filter='*.txt')
openw, 1, file
printf, 1, data.field1, format='(1f9.5)'
close, 1
end
プロシージャ名.pro
にする。
プロシージャ名と同じにしたほうがよい。
IDL> .run proname [,argument, ...]
もしくは
IDL> .rnew proname [,argument, ...]
2 つ目の方法は以前にコンパイルしたプログラムの変数が
すべて消去される。
IDL> proname [,argument, ...]
(最終更新日:2003/12/10)
window
: ウィンドウを開く。window, xsize=800, ysize=600
: 大きさを指定してウィンドウを開く。
wdelete
: ウィンドウを閉じる。
arr[列:行]
の順。
IDL> arr[0:9] = 0
arr=arr+1
IDL> arr = [[1,2,3],[4,5,6]] ; 2 次元配列
i = 0
repeat begin
arr = [arr,i]
i = i + 1
endrep until (i=10)
初めに arr を定義しておく必要がある。e.g. arr=0
print, N_ELEMENTS(arr)
xyouts, 100, 50,
'hoge'
: ウィンドウの
(100,50) に
文字列 hoge を表示する。
spawn, 'command'
: UNIX コマンドを実行。
IDL> var=0
IDL> read, var
プロンプトの変更は
IDL> read, var, PROMPT='hoge'
とする。
IDL> var=''
IDL> read, var
IDL> data=read_ascii(file, delimiter=',')
delimiter は指定しなければスペース。+----------------+(Vx-1,Vy-1)!D.X_SIZE, !D.Y_SIZE
| |
| region |
| |
(0,0)+----------------+
if (x eq 1) then statement1 else $
if (x eq 2) then statement2 else $
if (x eq 3) then statement3 else $
if (x eq 4) then statement4 else $
if (x eq 5) then statement5 else statementx
Building IDL Applications Chapter12 : Program Control 参照。
case var of
'hoge' : statement1
'hero' : statement2
else : begin
statementx
end
endcase
Building IDL Applications Chapter12 : Program Control 参照。
plot xtickformat='(a1)'
i = 0L
num = 100
str = string(num,format='(i3)')
date = '2005/01/10'
year = strmid(date, 0, 4)
month = strmid(date, 5, 2)
day = strmid(date, 7, 2)
print, 'year:', year
print, 'month:', month
print, 'day:', day
(output)
year:2005
month:01
day:10
(最終更新日:2005/02/23)
Copyright 2003--2004 小松 研吾 (最終更新日:2005/02/23)