# tlist

Scilab オブジェクトおよび型付のリスト定義.

## 呼び出し手順

    tlist(typ,a1,....an )

## パラメータ

typ

  文字列または文字列のベクトル

ai

  Scilabオブジェクト (`行列, リスト,文字列...`).

## 説明

要素`ai`を有する `型付のリスト` を作成します. `typ`引数はリストの型を指定する引数です. この `型付のリスト` により ユーザはScilab関数によりこれらのオブジェクトで動作する 新しい処理を定義できるようになります. `型付のリスト` と `リスト` の唯一の差は型の値(15ではなく16)です.

`typ(1)` はリストの型を指定します (ソフトコードされた処理を定義するために使用される文字列)

`typ(i)` が指定された場合, `i+1`番目の形式要素の名前を指定します.

`リスト`における標準処理は `型付リスト`でも類似性があります:

展開 : `[x,y,z...]=l(v)` ただし `v` は添え字のベクトルです; `[x,y,z]=l(:)` は全ての要素を展開します.

挿入 : `l(i)=a`

削除 : `l(i)=null()` は`tlist l`の i番目の要素を削除します.

表示

更に`typ(2:n+1)` が指定された場合, ユーザは名前で要素を指定することができます

以下に tlist の使用例を示します.

線形システムは,特定の`型付リスト`で表されます. 例えば,線形システム `[A,B,C,D]`は tlist `Sys=tlist(['lss';'A';'B';'C';'D';'X0';'dt'],A,B,C,D,x0,'c')` で表されこの特別のリストは関数`syslin`により 作成することが可能です.

Sys(2), Sys('A') または Sys.A は状態行列で, Sys('dt') または Sys.dt は 時間領域です

有理行列 `H` は`型付リスト` `H=rlist(Num,Den,[])` により表されます. ただし,`Num` および `Den` は多項式行列です. 伝達関数行列 `H` を有する(連続時間)線形システムは `syslin('c',H)`で作成できます.

H(2), H('num') または H.num は伝達関数行列の分子です.

## 例

    // tlist creation
    t = tlist(["listtype","field1","field2"], [], []);
    t.field1(1) = 10;
    t.field1(2) = 20;
    t.field2(1) = "Scilab";
    t.field2(2) = "tlist";
    t.field2(3) = "example";

    // Fields contents display
    disp(t.field1)
    disp(t.field2)

    // Generic tlist display
    disp(t)

    // Overloading display for this type of tlist
    function %listtype_p(mytlist)
      f = fieldnames(mytlist);

      // typeof(mytlist) <=> f(1)
      mprintf("Displaying a tlist of type: %s\n", typeof(mytlist));

      mprintf("\n");

      mprintf("-- Field ''%s'' --\n", f(1));
      mprintf("Contents: %s\n", sci2exp(mytlist(f(1))));

      mprintf("\n");

      mprintf("-- Field ''%s'' --\n", f(2));
      mprintf("Contents: %s\n", sci2exp(mytlist(f(2))));
    endfunction

    // Display using overloading function
    disp(t)

## 参照

- null
- percent
- syslin
- list
- mlist