ソフトウェア/Igor のバックアップの現在との差分(No.1)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[公開メモ]]

* Igor [#k3f1dcd4]
#contents

データ解析に Wave Metrics 社の Igor Pro を使っています。
* Igor とは [#k3f1dcd4]

測定したデータの解析に Wave Metrics 社の Igor Pro を頻繁に使っています。

なかなか癖のあるソフトですが、
Igor 上でプログラムを組むことでかなり複雑なデータ解析も自動化できていろいろ捗ります。

ここには使い回しの効きそうなコード例を上げていこうと思います。

* ファイル名操作用のユーティリティ関数 [#x15fe647]
公式のオンラインヘルプはこちらです。~
http://www.hulinks.co.jp/support/igor/programming/index.html

":" 区切りで渡されたファイルパスを操作する関数。
* 分野別記事へのリンク [#cb75dc8d]

同名の Delphi の関数を模したものです。
#ls2(,title)

 LANG:Igor
 // ファイル名を返す
 function/T ExtractFileName(filename)
 string filename
     return StringFromlist(ItemsInList(filename, ":")-1, filename, ":")
 end
 
 // ファイルパスを返す (末尾には : が付く)
 function/T ExtractFilePath(filename)
 string filename
     return filename[0,strlen(filename)-strlen(ExtractFileName(filename))-1]
 end
 
 // filename の . 以降を取り除いたものに ext を付ける
 function/T ChangeFileExt(filename, ext)
 string filename, ext
     variable i = strsearch(filename, ".", inf, 3)
     if(i<0)
         return filename + ext
     else
         return filename[0,i-1] + ext
     endif
 end
* ヒストグラムの罠 [#xb711407]

使用例
Igor の Histogram は癖があるので、正しく使わないとおかしな結果を導いてしまいます。

 LANG:Igor
 print ExtractFileName("c:folder1:folder2:file.ext")
 // prints "file.ext"
 
 print ExtractFilePath("c:folder1:folder2:file.ext")
 // prints "c:folder1:folder2:"
 
 print ExtractFilePath("c:folder1:folder2:file.ext") + "newfile.ext"
 // prints "c:folder1:folder2:newfile.ext"
 
 print ChangeFileExt("c:folder1:folder2:file.ext", ".txt")
 // prints "c:folder1:folder2:file.txt"
 
 print ChangeFileExt("c:folder1:folder2:file.ext", "")
 // prints "c:folder1:folder2:file"
詳しくは、[[棒グラフの罠 - 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: 14238 (from 2010/06/03), today: 1, yesterday: 3