write フォーマットされたファイルに書き込む

## 呼び出し手順

                write(file_desc, a)
                write(file_desc, a, format)
                write(file_desc, a, k, format)

## パラメータ

file_desc

  - ファイル名を指定する文字列. 既存のファイルを上書きしようとすると、エラーが発生します.
  - または、 ファイル（…） で開かれたファイルの整数 ID （file参照）. `%io(2)` を使用すると、コンソールに書き込みが行われます.

  この関数はUTFのファイル名をオープンすることができません. この場合は file を使用してください.

a

  実数のマトリックス、または文字列の列.

format

  文字列, "Fortran" 形式を指定します. 左括弧で始まり、右括弧で終わる必要があります. 形式には浮動小数点数, 整数または文字編集モードを混ぜることは できません.

  Formatの例 : `"(1x,e10.3,5x,3(f3.0),1x,i4)"`, `"(10x,a20)"`.

  "x": | white space. "5x" = 5 white spaces
  "a": | string. "a20" = 20 first characters of the input string.
  "i": | print as integer
  "f": | real number
  "e": | real number in exponential form.
  "(…)": | group. 3(…) = iterate 3 times the group.

  詳細はFortranブックを参照ください.

k

  整数ベクトル

## 説明

実数行列または文字列の列ベクトルを整形されたファイルに 行毎に書き込みます. 引数`a`の各行は, `file_desc`ファイルの新しい行で始まります. `format` に基づき `a`引数の指定した行が `file_desc`ファイルの複数行に書き込まれます.

直接アクセスファイル : `x=write(file_desc, a, k, format)`. ここで `k` はレコードのベクトルです (行毎に1レコード, すなわち, `m=prod(size(k)`)

`write(%io(2),....)` は Scilabのウインドウを書き込みます. この場合,`format`は 行列の各行について1行出力する必要があります. この拘束条件が確認できない場合,予測できない結果となる可能性があります.

## 例

    if getos() == 'Windows' then unix('del asave');
    else unix('rm -f asave'); end
    A = rand(5,3);
    write('asave',A);
    A = read('asave',5,3);

    write(%io(2),A,'('' | '',3(f10.3,'' | ''))')
    write(%io(2),string(1:10))
    write(%io(2),strcat(string(1:10),','))
    write(%io(2),1:10,'(10(i2,3x))')

    if getos() == 'Windows' then unix('del foo');
    else unix('rm -f foo'); end
    write('foo',A)

## 参照

- save
- file
- fileinfo
- print
- mfprintf
- mprintf
- fprintfMat

## 履歴

2023.1 write(…) overwrites existing file.