# save

バイナリファイルに1個または複数の変数を保存する

## 呼び出し手順

    save(filename [,x1,x2,...,xn])
                save(fd [,x1,x2,...,xn])

## パラメータ

filename

  ファイルのパスを含む文字列

fd

  mopenをコールすることにより得られたファイル記述子

xi

  任意のScilab変数

## 説明

`save`コマンドはカレントのScilab変数を バイナリファイルに保存する際に使用されます. 変数がグラフィックハンドルの場合, `save`関数は対応するgraphics_entitiesの定義を全て保存します.

ファイルはパスまたは`mopen`により得られたファイル記述子の どちらかで指定できます.

`save(filename)` は`filename`で指定したファイルに カレントの全ての変数を保存します.

`save(fd)`は記述子`fd`で指定したファイルに カレントの全ての変数を保存します. このプロトタイプは廃止予定であり、 Scilab 6では削除されます.

(実行環境の変数`x` および `y` を指定した) `save(filename,x,y)` または `save(fd,x,y)` は `x` および `y`という名前の変数のみを保存します. `save(fd,x,y)` は廃止予定であり, Scilab 6では削除されます.

(実行環境の変数名 `"x"` および `"y"` を指定した) `save(filename,"x","y")` は(HDF5に基づく)SOD (Scilab Open Data)形式で データを保存します.このフォーマットは Scilab 6シリーズで読むことができます.

Scilab 5シリーズと6シリーズの間でフォーマットの変更が決められました. これは,5形式は文書化されておらず,仕様が既定されておらず,読み込むことが困難であったためです. SOD (Scilab 6 のデフォルト形式)は完全に文書化され,HDF5ライブラリまたはアプリケーションにより 容易に読み込むことができます.

保存された変数は `load` コマンドにより再度読み込むことができます.

書き込まれたファイルは他のオペレーティングシステムやアーキテクチャ(リトルおよびビッグインディアン)に 対する可搬性があります.

## 例

    // Scilab 5 ファミリーまでで可読なバイナリ形式
    a=eye(2,2);b=ones(a);
    save('val.dat',a,b);
    clear a
    clear b
    load('val.dat','a','b');

    // ファイルにシーケンシャルに保存
    fd=mopen('TMPDIR/foo','wb')
    for k=1:4, x=k^2;save(fd,x,k),end
    mclose(fd)
    fd=mopen('TMPDIR/foo','rb')
    for i=1:4, load(fd,'x','k');x,k,end
    mclose(fd)

    // 変数を既存のファイルに追加
    fd=mopen('TMPDIR/foo','rb+')
    mseek(0,fd,'end')
    lst=list(1,2,3)
    save(fd,lst)
    mclose(fd)

    // Scilab 5.4.X および Scilab 6 ファミリーで可読なバイナリ形式
    a=eye(2,2);b=ones(a);
    save("val.sod", "a", "b");
    clear a
    clear b
    load("val.sod", "a", "b");

## 参照

- load
- write
- save_format
- mopen

## 履歴

5.0.0
uimenu または uicontrol ハンドルもこの関数で保存されます.
5.4.0

- 変数名(文字列)を入力とする場合,変数はScilab 6ファミリーで可読な SOD形式で保存されます.
- Scilab 5.X形式は廃止予定であり,Scilab 6で削除されます.
- ファイル記述子を入力引数とするsaveは廃止予定であり,Scilab 6で削除されます.