第9章 データ変換システム

1. DCM の概要

DCM (Data Conversion Module) は,様々なデータ解析ソフトウェアやシミュレータ間でデータを共有するためのシステムです.このシステムでは,次に示すソフトウェアのデータをサポートしています.

  • AXON pClampの ABF 形式

  • AVS のフィールドデータ形式

  • テキスト形式ファイル

  • MATLAB の Matrix 形式

  • Mathematica のリスト形式

  • Genesisのdisk_out オブジェクト出力ファイル

  • Neuron の出力ファイル

  • TEAC 製ディジタルレコーダ DR-M2a / M3a の出力ファイル

2. Excel との連携

2.1. SATELLITE ファイルを Excel で読む

例として,項4. 「NCS による神経回路網のモデリングシミュレーション」 で使用したサンプル (hhmodelE.sl) を使用します.

シミュレーションを実行し,Excel で読むファイルを作る手続きは,次のようになります.

[]SATELLITE[]~/home/demo:[1]% inline("hhmodelE.sl")
[]SATELLITE[]~/home/demo:[2]% V1=V[0]
[]SATELLITE[]~/home/demo:[3]% V2=V[1]
[]SATELLITE[]~/home/demo:[4]% V3=V[2]
[]SATELLITE[]~/home/demo:[5]% buffer2text("hhE.txt"," ,%8.4f ,%8.4f ,
                               %8.4f\n",V1,V2,V3)

これで,Excel で読むことができるファイルが作成され,Excel からファイル hhE.txt をテキスト形式 (カンマ区切り形式) で読んだ結果は,次のようになります.

SATELLITE ファイルを Excel で読んだ結果

図 9.1. SATELLITE ファイルを Excel で読んだ結果

2.2. Excel ファイルを SATELLITE で読む

式 (1) で作成されたデータを 図 9.2. 「式 (9.1) を Excel で実行した結果」 に示します.

但し,B 列が t,C 列が x を表しています.

式 (9.1) を Excel で実行した結果

図 9.2. 式 (9.1) を Excel で実行した結果

Excel でタブ付きテキスト形式で保存すれば,SATELLITE 変数に代入することができます.SATELLITE で,このテキスト形式ファイルを読む例を次に示します.

[]SATELLITE[]~/home/demo:[6]% x=text2buffer("sweep.txt")
[]SATELLITE[]~/home/demo:[7]% index(x)
[0]:%   3000   3
[]SATELLITE[]~/home/demo:[8]%

[]SATELLITE[]~/home/demo:[9]% wopen(1,"A4",0,1)
[]SATELLITE[]~/home/demo:[10]% size(120,80)
[]SATELLITE[]~/home/demo:[11]% color("black","black")
[]SATELLITE[]~/home/demo:[12]% lwidth(1,1)
[]SATELLITE[]~/home/demo:[13]% origin(40,40)
[]SATELLITE[]~/home/demo:[14]% scale("N","F","N","F",0,3000,-1.2,1.2)
[]SATELLITE[]~/home/demo:[15]% graph(x[2],"T",0,0,0,0,0)
[]SATELLITE[]~/home/demo:[16]% title(1,"point","Amplitude")
[]SATELLITE[]~/home/demo:[17]% axis(1,1,"XY","XY",5,0,0,0,0,0)
[]SATELLITE[]~/home/demo:[18]% frame()
実行結果

図 9.3. 実行結果

3. MATLAB との連携

3.1. SATELLITE ファイルを MATLAB で読む

例として,項4. 「NCS による神経回路網のモデリングシミュレーション」 で使用したサンプル (hhmodelE.sl) を使用します.

シミュレーションを実行し,MATLAB で読むファイルを作る手続きは,次のようになります.

[]SATELLITE[]~/home/demo:[19]% inline("hhmodelE.sl")
[]SATELLITE[]~/home/demo:[20]% buffer2matlab("V.mat","V",V)

これで,MATLAB で読むことができるファイルが作成されます.MATLAB では,次のように関数を入力することで,Workspace に buffer2matlab 関数で指定した変数名で取り込むことができます.

>>load V.mat

取り込んだ結果をプロットするには,次のように入力します.

>>VT=V’
>>plot(VT)

結果を 図 9.4. 「実行結果」 に示します.

実行結果

図 9.4. 実行結果

3.2. MATLAB ファイルを SATELLITE ファイルに変換する

>>num=[4 5]
>>den=[1 3 2]
>>[k,p]=residue(num,den)
>>t=0:0.01:10
>>y=k(1)*exp(p(1)*t)+k(2)*exp(p(2)*t)
>>plot(t,y)
>>xlabel('time [s]'); ylabel('y(t)'); grid
MATLAB 画面

図 9.5. MATLAB 画面

>>save time.dat t
>>save outp.dat y
[]SATELLITE[]~/home/demo:[21]% matlab2satellite("time.dat")
[]SATELLITE[]~/home/demo:[22]% time = $"t"
[]SATELLITE[]~/home/demo:[23]% matlab2satellite("outp.dat")
[]SATELLITE[]~/home/demo:[24]% outp = $"y"
[]SATELLITE[]~/home/demo:[25]% wopen(1,"A4",0,1)
[]SATELLITE[]~/home/demo:[26]% color("black","black")
[]SATELLITE[]~/home/demo:[27]% sx = 80
[]SATELLITE[]~/home/demo:[28]% sy = 80
[]SATELLITE[]~/home/demo:[29]% origin(40,40)
[]SATELLITE[]~/home/demo:[30]% size(sx,sy)
[]SATELLITE[]~/home/demo:[31]% title(1,"time [s]","y(t)")
[]SATELLITE[]~/home/demo:[32]% graph(yout,tim,0,0,0,0,0)
[]SATELLITE[]~/home/demo:[33]% axis(1,1,"XY","XY",5,0,0,0,0,0)
[]SATELLITE[]~/home/demo:[34]% ltype(2,1)
[]SATELLITE[]~/home/demo:[35]% line(0,sy / 2,sx,sy / 2)
[]SATELLITE[]~/home/demo:[36]% ltype(1,1)
[]SATELLITE[]~/home/demo:[37]% frame()
実行結果

図 9.6. 実行結果

Last updated: 2005/03/31