マクロの組み方part6(Waveの作成とdo-whileループ1)
今回から
① Waveを作成する
② do-whileループを利用して、Waveを複数作成する。
の2点について、2記事に渡って解説します。
まず
Waveの作成
macro makewave_A()
make/N=100/O wave1
make/N=100/O wave2
make/N=100/O wave3
make/N=100/O wave4
make/N=100/O wave5
wave1=sin(x/30*pi)
wave2=sin(2*x/30*pi)
wave3=sin(3*x/30*pi)
wave4=sin(4*x/30*pi)
wave5=sin(5*x/30*pi)
end
make/N=100/O wave1
make/N=100/O wave2
make/N=100/O wave3
make/N=100/O wave4
make/N=100/O wave5
wave1=sin(x/30*pi)
wave2=sin(2*x/30*pi)
wave3=sin(3*x/30*pi)
wave4=sin(4*x/30*pi)
wave5=sin(5*x/30*pi)
end
とプロシージャウインドウに打ち込み、マクロを実行してみてください。
すると、Wave1~Wave5の5つのSin関数が出来るはずです。
Waveを作成するためには
Make/N=(データ点の数) Waveの名前
で作成することができます。
なお、/Oは作ろうとしているWaveと同じ名前のWaveが既に存在していた場合に、上書きするという意味です。(OverwriteのOでしょうね。)
Waveに代入する時は、各Pointを変数xに対応させて
Wave名=(xの関数)
で作成することが出来ます。
Wave1=x^2
とすれば,
wave1[0]=0
wave1[1]=1
wave1[2]=4
wave1[3]=9
・・・
となります。
もちろん
Wave1=(x/2)^2
とすれば
Wave1[0]=0
wave1[1]=0.25
wave1[2]=1
wave1[3]=2.25
wave1[4]=4
・・・となりデータ点の間隔を半分にすることが出来、より詳しくグラフを作成することが出来ます。
かなり当然のことなのですが、結構重要なことなので書いておきました。