データ解析のためのIgorPro活用術

データファイルをロードする(1データ列の場合)

このIgorPro (for Windows) のProcedureは複数のtext形式のデータファイルを 一度にIgorProにLoadするものです。 このマクロでは系統的な名前のファイルのみを読み込むだけではなく、 path で指定したdirectryの中にある全てのテキストファイル(1列のデータ列)を 読み込むことができます。

使用方法

  1. このプログラムを使用する前に"wave0"という名前のwaveをrenameしてください。
  2. Load したいData fileをあるdirectry にまとめて入れてください。
  3. Data fileの拡張子は".txt"ですのでdos prompt 等で拡張子を変更する。
  4. 下のプログラムファイルをProcedure Windowに貼り付けてください。
  5. メニューバーに"Data/Load Waves"の下の方に"Loading"という項目が付け加わります。 これを選択するとダイアログが表示されます。
  6. 上から2番目"Name of path containing data files"はNewPathとすると新しくdataという名前のpahtを作ってくれる。
  7. 上から3番目"Wave names of y"は何もいれなくて結構です。入力するとloadされたwaveの名前が (入力文字列)+(ファイル名)となります。
ここからProcedureです。
※なお、2列のアスキー形式のデータ列については こちらに掲載しておきます。
/////////////////////////////////////////////////
// This procedure is for systematical loading
// all files in one directry with two column data.
// This provedure is for IgorPro 4 for Windows.
//    created by M. Nagai on April, 1996,
//    modified on June. 10, 2012 
/////////////////////////////////////////////////

Menu "Load Waves" "-" "Loading" End ///////////////////////////////////////////////// Proc Loading(cho_pro,thePath,wy_name) String cho_pro ="_FileName_" String thePath ="_New Path_" String wy_name ="" Prompt cho_pro, "What you want to name waves?", popup "_FileName_" Prompt thePath, "Name of path containing data files", popup PathList("*", ";", "")+"_New Path_" Prompt wy_name, "Wave names of y" Silent 1 // Now Data Loading... if (CmpStr(thePath, "_New Path_") == 0) NewPath/O data thePath = "data" endif if (exists("wave0")==0) if (CmpStr(cho_pro, "_FileName_") == 0) Load_o(thePath,wy_name) endif else Abort("Please rename wave0.") endif end ///////////////////////////////////////////////// Function Load_o(thePath,wy_name) String thePath String wy_name String fileName,wawawa Variable fileIndex=0, gotFile PauseUpDate do fileName = TextFile($thePath, fileIndex) gotFile = CmpStr(fileName, "") if (gotFile) LoadWave/G/P=$thePath/O/N=wave fileName wawawa=wy_name+fileName if (strsearch(wawawa,".",0)>-1) wawawa= wawawa[0,strsearch(wawawa,".",0)-1] endif rename wave0 $wawawa endif fileIndex += 1 while (gotFile) end

ここまで
最終更新日: 2004.4.10
一つ上の項目に戻る