Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.3.0 - 日本語

Change language to:
English - Français - Português

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Scilab manual >> Data Structures > mlist

mlist

Scilab オブジェクト, 型付リスト定義に向いた行列.

呼び出し手順

mlist(typ,a1,....an )

パラメータ

typ

文字列のベクトル

ai

任意のScilabオブジェクト (matrix, list,string...).

説明

mlist オブジェクトは tlist オブジェクトに 非常に良く似ています. 唯一の差異は, 展開 および insertion 挿入の構文です: M が mlistの場合, フィールド名でない i に関して, M(i) はリストの i番目のフィールドではありません.

展開および挿入の構文の意味付けは, overloading 関数で指定される必要があります.

overloading 関数の展開構文 b=a(i1,...,in) は以下の呼び出し手順となります : b=%<type_of_a>_e_(i1,...,in,a)

そして構文 [x1,..,xm]=a(i1,...,in) は以下の呼び出し手順となります: [x1,..,xm]=%<type_of_a>_e_(i1,...,in,a)

挿入構文に関連する overloading 関数 a(i1,...,in)=b は以下の呼び出し手順となります: a=%<type_of_b>_i_<type_of_a>(i1,...,in,b,a).

mlist フィールドはそれらの名前に基づき設計される必要があります. getfield および setfield 関数により処理することも可能です.

M=mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
//define display
function %V_p(M),disp(M.name+':'+string(M.value)),endfunction

//define extraction operation
function r=%V_e(varargin)
  M=varargin($)
  r=mlist(['V','name','value'],M.name(varargin(1:$-1)),M.value(varargin(1:$-1)))
endfunction
M(2,:) // the second row of  M
M.value

//define insertion operations
function M=%V_i_V(varargin)
  M=varargin($)
  N=varargin($-1)
  M.value(varargin(1:$-2))=N.value
  M.name(varargin(1:$-2))=N.name
endfunction
M(1,1)=M(2,2)

function M=%s_i_V(varargin) //insertion of a regular matrix into a V matrix
  M=varargin($)
  N=varargin($-1)
  M.value(varargin(1:$-2))=N
  M.name(varargin(1:$-2))=emptystr(N)
endfunction
M(1,1)=44

//tlist case
M=tlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
M(2)
M(2)='a'+string([1 2;3 4])

M('name')
<< lstcat Data Structures rlist >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jan 26 16:25:13 CET 2011