ソフトウェア/Igor の変更点
更新- 追加された行はこの色です。
- 削除された行はこの色です。
- ソフトウェア/Igor へ行く。
- ソフトウェア/Igor の差分を削除
[[公開メモ]] #contents * Igor とは [#k3f1dcd4] 測定したデータの解析に Wave Metrics 社の Igor Pro を頻繁に使っています。 なかなか癖のあるソフトですが、 Igor 上でプログラムを組むことでかなり複雑なデータ解析も自動化できていろいろ捗ります。 ここには使い回しの効きそうなコード例を上げていこうと思います。 公式のオンラインヘルプはこちらです。~ http://www.hulinks.co.jp/support/igor/programming/index.html * 分野別記事へのリンク [#cb75dc8d] #ls2(,title) * SetScale 関連 [#saf66845] SetScale でウェーブの縦横軸スケールを決められます。~ CopyScales というのもあって、あるウェーブの縦横軸スケール情報を別のウェーブにコピーできます。 逆に、ウェーブから縦横軸スケールを読み取るには、 - DimOffset(wave0, 0) : wave0 の x 軸の左端 = LeftX(wave0) - DimDelta(wave0, 0) : wave0 の x 軸の刻み幅 = DeltaX(wave0) - DimSize(wave0, 0) : wave0 の x 軸方向の点数 = 一次元ウェーブなら NumPnts(wave0) と等しい - WaveUnits(wave0, 0) : wave0 の x 軸の単位 - WaveUnits(wave0, 1) : 1次元ウェーブでは wave0 の値の単位 - DimOffset(wave0, 1) : 2次元以上のウェーブでは wave0 の y 軸の左端 - DimDelta(wave0, 1) : 2次元以上のウェーブでは wave0 の y 軸の刻み幅 - DimSize(wave0, 1) : 2次元以上のウェーブでは wave0 の y 軸方向の点数 - WaveUnits(wave0, 1) : 2次元以上のウェーブでは wave0 の y 軸の単位 - WaveUnits(wave0, 2) : 2次元ウェーブでは wave0 の値の単位 - ... - StringByKey("DUNITS", WaveInfo(wave0, 0)) : 次元数に関係なく wave0 の値の単位が得られる といった関数を使います。~ これらと合わせて、以下の関数もよく使いますね。 - Pnt2X(wave0, p) : p 番目の点の x 座標を求める( p は丸められて、必ず DeltaX の整数倍が返る) - X2Pnt(wave0, x) : x 座標を点のインデックスに直す(必ず整数が返る) - NumPnts(wave0) : wave0 の総点数を返す(多次元でも使える) - Note wave0, <str> : wave0 にノート文字列を付加する - note(wave0) : wave0 に付加したノート文字列を取得する ** SetScale/I の罠 [#c1d8de78] SetScale には /P と /I の2種類の指定の仕方がありますが、 /I についてはかなり注意が必要です。 LANG:Igor * Make/N=100 wave0 * SetScale/I x, 0, 100, wave0 * Print LeftX(wave0), DeltaX(wave0), Pnt2X(wave0, 99), RightX(wave0) 0 1.0101 100 101.01 この場合、DeltaX(wave0) は 1 ではなく 1.0101 になります。~ これは、wave0 の右端の点、すなわち wave0[99] の x 座標が 100 になるようにするためです。 ** RightX も危険 [#pead6ecd] また、この場合の RightX(wave0) は 100 ではなく 101.01 になります。~ すなわち、RightX(wave0) は一番右の点ではなくて、一番右の、さらに次の点の x 座標を返します。 かなり覚えにくいので、SetScale は /P で使うことをお勧めします。 LANG:Igor * Make/N=100 wave0 * SetScale/P x, 0, 1, wave0 * Print LeftX(wave0), DeltaX(wave0), Pnt2X(wave0, 99), RightX(wave0) 0 1 99 100 これなら驚きが少ないですよね。 * ヒストグラムの罠 [#xb711407] Igor の Histogram は癖があるので、正しく使わないとおかしな結果を導いてしまいます。 詳しくは、[[棒グラフの罠 - Histogram との組み合わせ>http://dora.bk.tsukuba.ac.jp/~takeuchi/index.php?%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%2FIgor%2F%A5%B0%A5%E9%A5%D5%B4%D8%CF%A2#e600b145]] をご覧下さい。 * 質問・コメント [#k629a3e3] #article_kcaptcha
Counter: 15453 (from 2010/06/03),
today: 1,
yesterday: 8