# read

行列を読み込む

## 呼び出し手順

    [x]=read(file-desc,m,n,[format])
                [x]=read(file-desc,m,n,k,format)

## パラメータ

file-desc

  ファイル名を指定する文字列または論理ユニットを 指定する整数値(file参照).

m, n

  整数 (行列 xの次元). 行の数が未知の場合には m=-1を設定します. この場合,ファイル全体が読み込まれます.

format : 文字列,"Fortran" 形式で指定します.

  この文字列は右括弧で始まり, 左括弧で終わる必要があります. format では 浮動小数点数または文字列編集モードを混用することができません.

k

  整数または整数のベクトル

## 説明

ファイル`file-desc` (文字列または整数)から `mxn` 行列 `x` (文字連鎖の場合,`n=1`)を行毎に読み込みます. 行列`x`の各行は, `file-desc`ファイルの新しい行で 始まります. `format`に基づき, `x`行列の指定した行は `file-desc`ファイルの複数の行から読み込む ことができます.

結果の型は指定されたformatに依存します. formatが`(d,e,f,g)`記述子のみを有する場合, この関数は数値データを読み込みます(結果は実数の行列です).

format が `a`記述子のみを含む場合, この関数は文字列を読み込みます (結果は文字列列ベクトルです). この場合, n は1である必要があります. 警告: 文字列の長さが 4093 よりも長い場合,丸められます.

`format`の例:

    (1x,e10.3,5x,3(f3.0))
    (10x,a20)

formatが省略された場合,データが数値フリー形式で読み込まれます: 空白,カンマおよびスラッシュをデータセパレータとして 使用でき, 値 v が n 回現れることを指定するためにn*v を使用できます.

読み込むレコード数のベクトル(行毎に1レコード)である パラメータ`k`を使用する場合, ファイルの直接アクセスを使用できます. この場合,`m` は `m=prod(size(k))`となります.

キーボードから読み込むには, `read(%io(1),...)`を使用してください.

## 注意

データファイルの最後の行は, 認識されるために,改行で終わる必要があります.

## 例

    if getos() == 'Windows' then unix('del foo');
    else unix('rm -f foo'); end
    A=rand(3,5); write('foo',A);
    B=read('foo',3,5)
    B=read('foo',-1,5)
    read(%io(1),1,1,'(a)')  // ユーザ入力を待つ

## 参照

- write
- load
- file
- readb
- x_dialog
- mscanf
- mfscanf
- msscanf
- fscanfMat