## 第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 をテキスト形式 (カンマ区切り形式) で読んだ結果は，次のようになります．

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

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

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

但し，B 列が t，C 列が x を表しています．

図 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

図 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